@covalent/core 4.0.0 → 4.1.0-develop.10
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/README.md +5 -4
- package/breadcrumbs/README.md +21 -17
- package/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -1
- package/breadcrumbs/breadcrumbs.component.d.ts +6 -4
- package/breadcrumbs/breadcrumbs.module.d.ts +8 -0
- package/breadcrumbs/covalent-core-breadcrumbs.d.ts +2 -1
- package/breadcrumbs/package.json +6 -7
- package/breadcrumbs/{public-api.d.ts → public_api.d.ts} +0 -0
- package/common/README.md +3 -0
- package/common/_common-theme.scss +3 -1
- package/common/behaviors/disable-ripple.mixin.d.ts +1 -1
- package/common/behaviors/disabled.mixin.d.ts +1 -1
- package/common/common.module.d.ts +15 -0
- package/common/covalent-core-common.d.ts +2 -3
- package/common/directives/fullscreen/fullscreen.directive.d.ts +3 -0
- package/common/forms/auto-trim/auto-trim.directive.d.ts +3 -0
- package/common/material-icons.css +1 -98
- package/common/material-icons.css.map +1 -1
- package/common/package.json +6 -7
- package/common/pipes/bytes/bytes.pipe.d.ts +3 -0
- package/common/pipes/decimal-bytes/decimal-bytes.pipe.d.ts +3 -0
- package/common/pipes/digits/digits.pipe.d.ts +3 -0
- package/common/pipes/time-ago/time-ago.pipe.d.ts +3 -0
- package/common/pipes/time-difference/time-difference.pipe.d.ts +3 -0
- package/common/pipes/time-until/time-until.pipe.d.ts +3 -0
- package/common/pipes/truncate/truncate.pipe.d.ts +4 -1
- package/common/platform.css +1 -15424
- package/common/platform.css.map +1 -1
- package/common/{public-api.d.ts → public_api.d.ts} +0 -0
- package/common/services/icon.service.d.ts +3 -0
- package/common/services/router-path.service.d.ts +3 -0
- package/common/styles/_elevation.scss +7 -2
- package/common/styles/_layout.scss +12 -10
- package/common/styles/_palette-dark.scss +2 -2
- package/common/styles/_palette-light.scss +6 -6
- package/common/styles/_rtl.scss +3 -0
- package/common/styles/_typography-functions.scss +10 -2
- package/common/styles/_variables.scss +7 -6
- package/common/styles/colors/_colors-dark.scss +327 -0
- package/common/styles/colors/_colors-light.scss +748 -0
- package/common/styles/core/_button.scss +37 -6
- package/common/styles/core/_card.scss +34 -9
- package/common/styles/core/_content.scss +2 -1
- package/common/styles/core/_divider.scss +1 -0
- package/common/styles/core/_icons.scss +2 -0
- package/common/styles/core/_sidenav.scss +2 -0
- package/common/styles/core/_structure.scss +6 -7
- package/common/styles/core/_toolbar.scss +7 -0
- package/common/styles/core/_whiteframe.scss +18 -10
- package/common/styles/font/README.md +4 -2
- package/common/styles/font/_font.scss +10 -4
- package/common/styles/utilities/_general.scss +14 -0
- package/common/styles/utilities/_text.scss +21 -0
- package/covalent-core.d.ts +2 -1
- package/dialogs/README.md +38 -30
- package/dialogs/_dialog-theme.scss +1 -0
- package/dialogs/alert-dialog/alert-dialog.component.d.ts +6 -3
- package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +5 -2
- package/dialogs/covalent-core-dialogs.d.ts +2 -2
- package/dialogs/dialog.component.d.ts +9 -0
- package/dialogs/dialogs.module.d.ts +17 -0
- package/dialogs/package.json +6 -7
- package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +6 -3
- package/dialogs/{public-api.d.ts → public_api.d.ts} +1 -0
- package/dialogs/services/dialog.service.d.ts +3 -0
- package/dialogs/src/README.md +223 -0
- package/dialogs/window-dialog/window-dialog.component.d.ts +8 -5
- package/dynamic-menu/README.md +6 -6
- package/dynamic-menu/covalent-core-dynamic-menu.d.ts +2 -2
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +4 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +4 -1
- package/dynamic-menu/dynamic-menu.component.d.ts +4 -22
- package/dynamic-menu/dynamic-menu.menu.d.ts +22 -0
- package/dynamic-menu/dynamic-menu.module.d.ts +13 -0
- package/dynamic-menu/package.json +6 -7
- package/dynamic-menu/public_api.d.ts +2 -0
- package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +92 -0
- package/esm2020/breadcrumbs/breadcrumbs.component.mjs +130 -0
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +20 -0
- package/esm2020/breadcrumbs/covalent-core-breadcrumbs.mjs +5 -0
- package/esm2020/breadcrumbs/public_api.mjs +4 -0
- package/esm2020/common/animations/bounce/bounce.animation.mjs +70 -0
- package/esm2020/common/animations/collapse/collapse.animation.mjs +51 -0
- package/esm2020/common/animations/common/interfaces.mjs +2 -0
- package/esm2020/common/animations/fade/fadeInOut.animation.mjs +37 -0
- package/esm2020/common/animations/flash/flash.animation.mjs +34 -0
- package/esm2020/common/animations/headshake/headshake.animation.mjs +47 -0
- package/esm2020/common/animations/jello/jello.animation.mjs +59 -0
- package/esm2020/common/animations/pulse/pulse.animation.mjs +32 -0
- package/esm2020/common/animations/rotate/rotate.animation.mjs +30 -0
- package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +41 -0
- package/esm2020/common/behaviors/disable-ripple.mixin.mjs +24 -0
- package/esm2020/common/behaviors/disabled.mixin.mjs +24 -0
- package/esm2020/common/common.module.mjs +63 -0
- package/esm2020/common/covalent-core-common.mjs +5 -0
- package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +85 -0
- package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +36 -0
- package/esm2020/common/forms/validators/validators.mjs +29 -0
- package/esm2020/common/functions/clipboard.mjs +23 -0
- package/esm2020/common/functions/convert.mjs +84 -0
- package/esm2020/common/functions/download.mjs +75 -0
- package/esm2020/common/functions/file.mjs +16 -0
- package/esm2020/common/pipes/bytes/bytes.pipe.mjs +42 -0
- package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +42 -0
- package/esm2020/common/pipes/digits/digits.pipe.mjs +39 -0
- package/esm2020/common/pipes/time-ago/time-ago.pipe.mjs +72 -0
- package/esm2020/common/pipes/time-difference/time-difference.pipe.mjs +51 -0
- package/esm2020/common/pipes/time-until/time-until.pipe.mjs +72 -0
- package/esm2020/common/pipes/truncate/truncate.pipe.mjs +27 -0
- package/esm2020/common/public_api.mjs +39 -0
- package/esm2020/common/services/icon.service.mjs +1089 -0
- package/esm2020/common/services/router-path.service.mjs +29 -0
- package/esm2020/covalent-core.mjs +5 -0
- package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +23 -0
- package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +28 -0
- package/esm2020/dialogs/covalent-core-dialogs.mjs +5 -0
- package/esm2020/dialogs/dialog.component.mjs +56 -0
- package/esm2020/dialogs/dialogs.module.mjs +89 -0
- package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +46 -0
- package/esm2020/dialogs/public_api.mjs +9 -0
- package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +216 -0
- package/esm2020/dialogs/services/dialog.service.mjs +171 -0
- package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +38 -0
- package/esm2020/dynamic-menu/covalent-core-dynamic-menu.mjs +5 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +30 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +24 -0
- package/esm2020/dynamic-menu/dynamic-menu.component.mjs +28 -0
- package/esm2020/dynamic-menu/dynamic-menu.menu.mjs +2 -0
- package/esm2020/dynamic-menu/dynamic-menu.module.mjs +57 -0
- package/esm2020/dynamic-menu/public_api.mjs +6 -0
- package/esm2020/file/covalent-core-file.mjs +5 -0
- package/esm2020/file/directives/file-drop.directive.mjs +147 -0
- package/esm2020/file/directives/file-select.directive.mjs +77 -0
- package/esm2020/file/file-input/file-input.component.mjs +110 -0
- package/esm2020/file/file-upload/file-upload.component.mjs +174 -0
- package/esm2020/file/file.module.mjs +58 -0
- package/esm2020/file/public_api.mjs +7 -0
- package/esm2020/file/services/file.service.mjs +64 -0
- package/esm2020/json-formatter/collapse.animation.mjs +51 -0
- package/esm2020/json-formatter/covalent-core-json-formatter.mjs +5 -0
- package/esm2020/json-formatter/json-formatter.component.mjs +217 -0
- package/esm2020/json-formatter/json-formatter.module.mjs +20 -0
- package/esm2020/json-formatter/public_api.mjs +3 -0
- package/esm2020/layout/covalent-core-layout.mjs +5 -0
- package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +40 -0
- package/esm2020/layout/layout-footer/layout-footer.component.mjs +33 -0
- package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +93 -0
- package/esm2020/layout/layout-manage-list/layout-manage-list.directives.mjs +84 -0
- package/esm2020/layout/layout-nav/layout-nav.component.mjs +50 -0
- package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +128 -0
- package/esm2020/layout/layout-nav-list/layout-nav-list.directives.mjs +84 -0
- package/esm2020/layout/layout-toggle.class.mjs +92 -0
- package/esm2020/layout/layout.component.mjs +92 -0
- package/esm2020/layout/layout.directives.mjs +85 -0
- package/esm2020/layout/layout.module.mjs +117 -0
- package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +161 -0
- package/esm2020/layout/public_api.mjs +13 -0
- package/esm2020/menu/covalent-core-menu.mjs +5 -0
- package/esm2020/menu/menu.component.mjs +12 -0
- package/esm2020/menu/menu.module.mjs +21 -0
- package/esm2020/menu/public_api.mjs +3 -0
- package/esm2020/message/collapse.animation.mjs +51 -0
- package/esm2020/message/covalent-core-message.mjs +5 -0
- package/esm2020/message/message.component.mjs +203 -0
- package/esm2020/message/message.module.mjs +25 -0
- package/esm2020/message/public_api.mjs +3 -0
- package/esm2020/public_api.mjs +2 -0
- package/esm2020/search/covalent-core-search.mjs +5 -0
- package/esm2020/search/public_api.mjs +4 -0
- package/esm2020/search/search-box/search-box.component.mjs +194 -0
- package/esm2020/search/search-input/search-input.component.mjs +203 -0
- package/esm2020/search/search.module.mjs +39 -0
- package/esm2020/side-sheet/covalent-core-side-sheet.mjs +5 -0
- package/esm2020/side-sheet/public_api.mjs +6 -0
- package/esm2020/side-sheet/side-sheet-container.mjs +274 -0
- package/esm2020/side-sheet/side-sheet-ref.mjs +21 -0
- package/esm2020/side-sheet/side-sheet.animation.mjs +12 -0
- package/esm2020/side-sheet/side-sheet.config.mjs +4 -0
- package/esm2020/side-sheet/side-sheet.content-directives.mjs +201 -0
- package/esm2020/side-sheet/side-sheet.mjs +221 -0
- package/esm2020/side-sheet/side-sheet.module.mjs +45 -0
- package/esm2020/user-profile/covalent-core-user-profile.mjs +5 -0
- package/esm2020/user-profile/public_api.mjs +4 -0
- package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +24 -0
- package/esm2020/user-profile/user-profile.component.mjs +19 -0
- package/esm2020/user-profile/user-profile.module.mjs +44 -0
- package/fesm2015/covalent-core-breadcrumbs.mjs +242 -0
- package/fesm2015/covalent-core-breadcrumbs.mjs.map +1 -0
- package/fesm2015/covalent-core-common.mjs +2281 -0
- package/fesm2015/covalent-core-common.mjs.map +1 -0
- package/fesm2015/covalent-core-dialogs.mjs +639 -0
- package/fesm2015/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs +128 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -0
- package/fesm2015/covalent-core-file.mjs +613 -0
- package/fesm2015/covalent-core-file.mjs.map +1 -0
- package/fesm2015/covalent-core-json-formatter.mjs +298 -0
- package/fesm2015/covalent-core-json-formatter.mjs.map +1 -0
- package/fesm2015/covalent-core-layout.mjs +1024 -0
- package/fesm2015/covalent-core-layout.mjs.map +1 -0
- package/fesm2015/covalent-core-menu.mjs +37 -0
- package/fesm2015/covalent-core-menu.mjs.map +1 -0
- package/fesm2015/covalent-core-message.mjs +284 -0
- package/fesm2015/covalent-core-message.mjs.map +1 -0
- package/fesm2015/covalent-core-search.mjs +428 -0
- package/fesm2015/covalent-core-search.mjs.map +1 -0
- package/fesm2015/covalent-core-side-sheet.mjs +762 -0
- package/fesm2015/covalent-core-side-sheet.mjs.map +1 -0
- package/fesm2015/covalent-core-user-profile.mjs +86 -0
- package/fesm2015/covalent-core-user-profile.mjs.map +1 -0
- package/fesm2015/covalent-core.mjs +4 -0
- package/fesm2015/covalent-core.mjs.map +1 -0
- package/fesm2020/covalent-core-breadcrumbs.mjs +242 -0
- package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -0
- package/{fesm2015/covalent-core-common.js → fesm2020/covalent-core-common.mjs} +317 -813
- package/fesm2020/covalent-core-common.mjs.map +1 -0
- package/fesm2020/covalent-core-dialogs.mjs +634 -0
- package/fesm2020/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2020/covalent-core-dynamic-menu.mjs +128 -0
- package/fesm2020/covalent-core-dynamic-menu.mjs.map +1 -0
- package/fesm2020/covalent-core-file.mjs +607 -0
- package/fesm2020/covalent-core-file.mjs.map +1 -0
- package/fesm2020/covalent-core-json-formatter.mjs +290 -0
- package/fesm2020/covalent-core-json-formatter.mjs.map +1 -0
- package/fesm2020/covalent-core-layout.mjs +1000 -0
- package/fesm2020/covalent-core-layout.mjs.map +1 -0
- package/fesm2020/covalent-core-menu.mjs +37 -0
- package/fesm2020/covalent-core-menu.mjs.map +1 -0
- package/fesm2020/covalent-core-message.mjs +282 -0
- package/fesm2020/covalent-core-message.mjs.map +1 -0
- package/fesm2020/covalent-core-search.mjs +425 -0
- package/fesm2020/covalent-core-search.mjs.map +1 -0
- package/fesm2020/covalent-core-side-sheet.mjs +757 -0
- package/fesm2020/covalent-core-side-sheet.mjs.map +1 -0
- package/fesm2020/covalent-core-user-profile.mjs +86 -0
- package/fesm2020/covalent-core-user-profile.mjs.map +1 -0
- package/fesm2020/covalent-core.mjs +4 -0
- package/fesm2020/covalent-core.mjs.map +1 -0
- package/file/_file-theme.scss +3 -1
- package/file/covalent-core-file.d.ts +2 -1
- package/file/directives/file-drop.directive.d.ts +8 -6
- package/file/directives/file-select.directive.d.ts +5 -2
- package/file/file-input/file-input.component.d.ts +10 -5
- package/file/file-upload/file-upload.component.d.ts +18 -8
- package/file/file.module.d.ts +13 -0
- package/file/package.json +6 -7
- package/file/{public-api.d.ts → public_api.d.ts} +0 -0
- package/file/services/file.service.d.ts +3 -0
- package/file/{file-input → src/file-input}/README.md +46 -37
- package/file/{file-upload → src/file-upload}/README.md +36 -27
- package/json-formatter/README.md +8 -8
- package/json-formatter/_json-formatter-theme.scss +10 -0
- package/json-formatter/collapse.animation.d.ts +24 -0
- package/json-formatter/covalent-core-json-formatter.d.ts +2 -1
- package/json-formatter/json-formatter.component.d.ts +7 -4
- package/json-formatter/json-formatter.module.d.ts +8 -0
- package/json-formatter/package.json +6 -7
- package/json-formatter/{public-api.d.ts → public_api.d.ts} +0 -0
- package/layout/README.md +48 -50
- package/layout/_layout-theme.scss +12 -0
- package/layout/covalent-core-layout.d.ts +2 -1
- package/layout/layout-card-over/layout-card-over.component.d.ts +6 -3
- package/layout/layout-footer/layout-footer.component.d.ts +6 -3
- package/layout/layout-manage-list/layout-manage-list.component.d.ts +7 -4
- package/layout/layout-manage-list/layout-manage-list.directives.d.ts +9 -2
- package/layout/layout-nav/layout-nav.component.d.ts +8 -5
- package/layout/layout-nav-list/layout-nav-list.component.d.ts +12 -9
- package/layout/layout-nav-list/layout-nav-list.directives.d.ts +9 -2
- package/layout/layout-toggle.class.d.ts +4 -1
- package/layout/layout.component.d.ts +7 -4
- package/layout/layout.directives.d.ts +9 -2
- package/layout/layout.module.d.ts +23 -0
- package/layout/navigation-drawer/navigation-drawer.component.d.ts +17 -10
- package/layout/package.json +6 -7
- package/layout/{public-api.d.ts → public_api.d.ts} +0 -0
- package/layout/{layout-card-over → src/layout-card-over}/README.md +19 -17
- package/layout/{layout-manage-list → src/layout-manage-list}/README.md +24 -28
- package/layout/src/layout-nav/README.md +50 -0
- package/layout/{layout-nav-list → src/layout-nav-list}/README.md +44 -40
- package/menu/covalent-core-menu.d.ts +2 -1
- package/menu/menu.component.d.ts +3 -0
- package/menu/menu.module.d.ts +8 -0
- package/menu/package.json +6 -7
- package/menu/{public-api.d.ts → public_api.d.ts} +0 -0
- package/message/README.md +26 -18
- package/message/_message-theme.scss +3 -0
- package/message/collapse.animation.d.ts +24 -0
- package/message/covalent-core-message.d.ts +2 -1
- package/message/message.component.d.ts +9 -4
- package/message/message.module.d.ts +7 -0
- package/message/package.json +6 -7
- package/message/{public-api.d.ts → public_api.d.ts} +0 -0
- package/package.json +129 -37
- package/{index.d.ts → public_api.d.ts} +0 -0
- package/search/README.md +74 -73
- package/search/covalent-core-search.d.ts +2 -1
- package/search/package.json +6 -7
- package/search/{public-api.d.ts → public_api.d.ts} +0 -0
- package/search/search-box/search-box.component.d.ts +12 -5
- package/search/search-input/search-input.component.d.ts +12 -5
- package/search/search.module.d.ts +11 -0
- package/search/src/search-box/README.md +73 -0
- package/search/src/search-input/README.md +74 -0
- package/side-sheet/README.md +3 -5
- package/side-sheet/{side-sheet.theme.scss → _side-sheet.theme.scss} +0 -0
- package/side-sheet/covalent-core-side-sheet.d.ts +2 -3
- package/side-sheet/package.json +6 -7
- package/side-sheet/{public-api.d.ts → public_api.d.ts} +0 -0
- package/side-sheet/side-sheet-container.d.ts +21 -5
- package/side-sheet/side-sheet.content-directives.d.ts +23 -6
- package/side-sheet/side-sheet.d.ts +7 -2
- package/side-sheet/side-sheet.module.d.ts +9 -0
- package/theming/prebuilt/blue-grey-deep-orange.css +1 -2434
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.css +1 -2434
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/indigo-pink.css +1 -2434
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.css +1 -2434
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/teal-orange.css +1 -2434
- package/theming/prebuilt/teal-orange.css.map +1 -1
- package/user-profile/README.md +5 -5
- package/user-profile/covalent-core-user-profile.d.ts +2 -1
- package/user-profile/package.json +6 -7
- package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +5 -2
- package/user-profile/user-profile.component.d.ts +5 -2
- package/user-profile/user-profile.module.d.ts +12 -0
- package/breadcrumbs/breadcrumb/breadcrumb.component.scss +0 -22
- package/breadcrumbs/breadcrumbs.component.scss +0 -7
- package/breadcrumbs/covalent-core-breadcrumbs.metadata.json +0 -1
- package/breadcrumbs/index.d.ts +0 -1
- package/bundles/covalent-core-breadcrumbs.umd.js +0 -490
- package/bundles/covalent-core-breadcrumbs.umd.js.map +0 -1
- package/bundles/covalent-core-breadcrumbs.umd.min.js +0 -2
- package/bundles/covalent-core-breadcrumbs.umd.min.js.map +0 -1
- package/bundles/covalent-core-common.umd.js +0 -3188
- package/bundles/covalent-core-common.umd.js.map +0 -1
- package/bundles/covalent-core-common.umd.min.js +0 -17
- package/bundles/covalent-core-common.umd.min.js.map +0 -1
- package/bundles/covalent-core-dialogs.umd.js +0 -1318
- package/bundles/covalent-core-dialogs.umd.js.map +0 -1
- package/bundles/covalent-core-dialogs.umd.min.js +0 -2
- package/bundles/covalent-core-dialogs.umd.min.js.map +0 -1
- package/bundles/covalent-core-dynamic-menu.umd.js +0 -215
- package/bundles/covalent-core-dynamic-menu.umd.js.map +0 -1
- package/bundles/covalent-core-dynamic-menu.umd.min.js +0 -2
- package/bundles/covalent-core-dynamic-menu.umd.min.js.map +0 -1
- package/bundles/covalent-core-file.umd.js +0 -1211
- package/bundles/covalent-core-file.umd.js.map +0 -1
- package/bundles/covalent-core-file.umd.min.js +0 -17
- package/bundles/covalent-core-file.umd.min.js.map +0 -1
- package/bundles/covalent-core-json-formatter.umd.js +0 -408
- package/bundles/covalent-core-json-formatter.umd.js.map +0 -1
- package/bundles/covalent-core-json-formatter.umd.min.js +0 -2
- package/bundles/covalent-core-json-formatter.umd.min.js.map +0 -1
- package/bundles/covalent-core-layout.umd.js +0 -2084
- package/bundles/covalent-core-layout.umd.js.map +0 -1
- package/bundles/covalent-core-layout.umd.min.js +0 -17
- package/bundles/covalent-core-layout.umd.min.js.map +0 -1
- package/bundles/covalent-core-menu.umd.js +0 -69
- package/bundles/covalent-core-menu.umd.js.map +0 -1
- package/bundles/covalent-core-menu.umd.min.js +0 -2
- package/bundles/covalent-core-menu.umd.min.js.map +0 -1
- package/bundles/covalent-core-message.umd.js +0 -375
- package/bundles/covalent-core-message.umd.js.map +0 -1
- package/bundles/covalent-core-message.umd.min.js +0 -2
- package/bundles/covalent-core-message.umd.min.js.map +0 -1
- package/bundles/covalent-core-search.umd.js +0 -877
- package/bundles/covalent-core-search.umd.js.map +0 -1
- package/bundles/covalent-core-search.umd.min.js +0 -16
- package/bundles/covalent-core-search.umd.min.js.map +0 -1
- package/bundles/covalent-core-side-sheet.umd.js +0 -1458
- package/bundles/covalent-core-side-sheet.umd.js.map +0 -1
- package/bundles/covalent-core-side-sheet.umd.min.js +0 -16
- package/bundles/covalent-core-side-sheet.umd.min.js.map +0 -1
- package/bundles/covalent-core-user-profile.umd.js +0 -116
- package/bundles/covalent-core-user-profile.umd.js.map +0 -1
- package/bundles/covalent-core-user-profile.umd.min.js +0 -2
- package/bundles/covalent-core-user-profile.umd.min.js.map +0 -1
- package/bundles/covalent-core.umd.js +0 -9
- package/bundles/covalent-core.umd.js.map +0 -1
- package/bundles/covalent-core.umd.min.js +0 -2
- package/bundles/covalent-core.umd.min.js.map +0 -1
- package/common/covalent-core-common.metadata.json +0 -1
- package/common/index.d.ts +0 -1
- package/common/material-icons.scss +0 -3
- package/common/platform.scss +0 -7
- package/covalent-core.metadata.json +0 -1
- package/dialogs/alert-dialog/alert-dialog.component.scss +0 -3
- package/dialogs/confirm-dialog/confirm-dialog.component.scss +0 -3
- package/dialogs/covalent-core-dialogs.metadata.json +0 -1
- package/dialogs/dialog.component.scss +0 -44
- package/dialogs/index.d.ts +0 -1
- package/dialogs/prompt-dialog/prompt-dialog.component.scss +0 -15
- package/dialogs/window-dialog/window-dialog.component.scss +0 -31
- package/dynamic-menu/covalent-core-dynamic-menu.metadata.json +0 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.scss +0 -6
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.scss +0 -11
- package/dynamic-menu/dynamic-menu.component.scss +0 -0
- package/dynamic-menu/index.d.ts +0 -1
- package/esm2015/breadcrumbs/breadcrumb/breadcrumb.component.js +0 -171
- package/esm2015/breadcrumbs/breadcrumbs.component.js +0 -241
- package/esm2015/breadcrumbs/breadcrumbs.module.js +0 -20
- package/esm2015/breadcrumbs/covalent-core-breadcrumbs.js +0 -10
- package/esm2015/breadcrumbs/index.js +0 -7
- package/esm2015/breadcrumbs/public-api.js +0 -9
- package/esm2015/common/animations/bounce/bounce.animation.js +0 -76
- package/esm2015/common/animations/collapse/collapse.animation.js +0 -67
- package/esm2015/common/animations/common/interfaces.js +0 -18
- package/esm2015/common/animations/fade/fadeInOut.animation.js +0 -53
- package/esm2015/common/animations/flash/flash.animation.js +0 -40
- package/esm2015/common/animations/headshake/headshake.animation.js +0 -41
- package/esm2015/common/animations/jello/jello.animation.js +0 -44
- package/esm2015/common/animations/pulse/pulse.animation.js +0 -38
- package/esm2015/common/animations/rotate/rotate.animation.js +0 -41
- package/esm2015/common/behaviors/control-value-accesor.mixin.js +0 -107
- package/esm2015/common/behaviors/disable-ripple.mixin.js +0 -63
- package/esm2015/common/behaviors/disabled.mixin.js +0 -63
- package/esm2015/common/common.module.js +0 -54
- package/esm2015/common/covalent-core-common.js +0 -12
- package/esm2015/common/directives/fullscreen/fullscreen.directive.js +0 -180
- package/esm2015/common/forms/auto-trim/auto-trim.directive.js +0 -46
- package/esm2015/common/forms/validators/validators.js +0 -58
- package/esm2015/common/functions/clipboard.js +0 -30
- package/esm2015/common/functions/convert.js +0 -103
- package/esm2015/common/functions/download.js +0 -88
- package/esm2015/common/functions/file.js +0 -29
- package/esm2015/common/index.js +0 -7
- package/esm2015/common/pipes/bytes/bytes.pipe.js +0 -41
- package/esm2015/common/pipes/decimal-bytes/decimal-bytes.pipe.js +0 -41
- package/esm2015/common/pipes/digits/digits.pipe.js +0 -65
- package/esm2015/common/pipes/time-ago/time-ago.pipe.js +0 -81
- package/esm2015/common/pipes/time-difference/time-difference.pipe.js +0 -66
- package/esm2015/common/pipes/time-until/time-until.pipe.js +0 -81
- package/esm2015/common/pipes/truncate/truncate.pipe.js +0 -34
- package/esm2015/common/public-api.js +0 -44
- package/esm2015/common/services/icon.service.js +0 -1109
- package/esm2015/common/services/router-path.service.js +0 -60
- package/esm2015/covalent-core.js +0 -10
- package/esm2015/dialogs/alert-dialog/alert-dialog.component.js +0 -47
- package/esm2015/dialogs/confirm-dialog/confirm-dialog.component.js +0 -59
- package/esm2015/dialogs/covalent-core-dialogs.js +0 -11
- package/esm2015/dialogs/dialog.component.js +0 -58
- package/esm2015/dialogs/dialogs.module.js +0 -57
- package/esm2015/dialogs/index.js +0 -7
- package/esm2015/dialogs/prompt-dialog/prompt-dialog.component.js +0 -83
- package/esm2015/dialogs/public-api.js +0 -13
- package/esm2015/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.js +0 -325
- package/esm2015/dialogs/services/dialog.service.js +0 -316
- package/esm2015/dialogs/window-dialog/window-dialog.component.js +0 -56
- package/esm2015/dynamic-menu/covalent-core-dynamic-menu.js +0 -11
- package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.js +0 -40
- package/esm2015/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.js +0 -35
- package/esm2015/dynamic-menu/dynamic-menu.component.js +0 -89
- package/esm2015/dynamic-menu/dynamic-menu.module.js +0 -26
- package/esm2015/dynamic-menu/index.js +0 -7
- package/esm2015/dynamic-menu/public_api.js +0 -9
- package/esm2015/file/covalent-core-file.js +0 -10
- package/esm2015/file/directives/file-drop.directive.js +0 -191
- package/esm2015/file/directives/file-select.directive.js +0 -98
- package/esm2015/file/file-input/file-input.component.js +0 -186
- package/esm2015/file/file-upload/file-upload.component.js +0 -237
- package/esm2015/file/file.module.js +0 -35
- package/esm2015/file/index.js +0 -7
- package/esm2015/file/public-api.js +0 -12
- package/esm2015/file/services/file.service.js +0 -109
- package/esm2015/index.js +0 -7
- package/esm2015/json-formatter/covalent-core-json-formatter.js +0 -10
- package/esm2015/json-formatter/index.js +0 -7
- package/esm2015/json-formatter/json-formatter.component.js +0 -338
- package/esm2015/json-formatter/json-formatter.module.js +0 -20
- package/esm2015/json-formatter/public-api.js +0 -8
- package/esm2015/layout/covalent-core-layout.js +0 -10
- package/esm2015/layout/index.js +0 -7
- package/esm2015/layout/layout-card-over/layout-card-over.component.js +0 -71
- package/esm2015/layout/layout-footer/layout-footer.component.js +0 -71
- package/esm2015/layout/layout-manage-list/layout-manage-list.component.js +0 -145
- package/esm2015/layout/layout-manage-list/layout-manage-list.directives.js +0 -132
- package/esm2015/layout/layout-nav/layout-nav.component.js +0 -100
- package/esm2015/layout/layout-nav-list/layout-nav-list.component.js +0 -220
- package/esm2015/layout/layout-nav-list/layout-nav-list.directives.js +0 -132
- package/esm2015/layout/layout-toggle.class.js +0 -188
- package/esm2015/layout/layout.component.js +0 -145
- package/esm2015/layout/layout.directives.js +0 -129
- package/esm2015/layout/layout.module.js +0 -64
- package/esm2015/layout/navigation-drawer/navigation-drawer.component.js +0 -280
- package/esm2015/layout/public-api.js +0 -18
- package/esm2015/menu/covalent-core-menu.js +0 -10
- package/esm2015/menu/index.js +0 -7
- package/esm2015/menu/menu.component.js +0 -16
- package/esm2015/menu/menu.module.js +0 -22
- package/esm2015/menu/public-api.js +0 -8
- package/esm2015/message/covalent-core-message.js +0 -10
- package/esm2015/message/index.js +0 -7
- package/esm2015/message/message.component.js +0 -307
- package/esm2015/message/message.module.js +0 -21
- package/esm2015/message/public-api.js +0 -8
- package/esm2015/search/covalent-core-search.js +0 -10
- package/esm2015/search/index.js +0 -7
- package/esm2015/search/public-api.js +0 -9
- package/esm2015/search/search-box/search-box.component.js +0 -270
- package/esm2015/search/search-input/search-input.component.js +0 -260
- package/esm2015/search/search.module.js +0 -23
- package/esm2015/side-sheet/covalent-core-side-sheet.js +0 -12
- package/esm2015/side-sheet/index.js +0 -7
- package/esm2015/side-sheet/public-api.js +0 -11
- package/esm2015/side-sheet/side-sheet-container.js +0 -402
- package/esm2015/side-sheet/side-sheet-ref.js +0 -50
- package/esm2015/side-sheet/side-sheet.animation.js +0 -20
- package/esm2015/side-sheet/side-sheet.config.js +0 -12
- package/esm2015/side-sheet/side-sheet.content-directives.js +0 -255
- package/esm2015/side-sheet/side-sheet.js +0 -360
- package/esm2015/side-sheet/side-sheet.module.js +0 -36
- package/esm2015/user-profile/covalent-core-user-profile.js +0 -10
- package/esm2015/user-profile/index.js +0 -7
- package/esm2015/user-profile/public_api.js +0 -9
- package/esm2015/user-profile/user-profile-menu/user-profile-menu.component.js +0 -35
- package/esm2015/user-profile/user-profile.component.js +0 -26
- package/esm2015/user-profile/user-profile.module.js +0 -25
- package/fesm2015/covalent-core-breadcrumbs.js +0 -448
- package/fesm2015/covalent-core-breadcrumbs.js.map +0 -1
- package/fesm2015/covalent-core-common.js.map +0 -1
- package/fesm2015/covalent-core-dialogs.js +0 -1001
- package/fesm2015/covalent-core-dialogs.js.map +0 -1
- package/fesm2015/covalent-core-dynamic-menu.js +0 -204
- package/fesm2015/covalent-core-dynamic-menu.js.map +0 -1
- package/fesm2015/covalent-core-file.js +0 -855
- package/fesm2015/covalent-core-file.js.map +0 -1
- package/fesm2015/covalent-core-json-formatter.js +0 -377
- package/fesm2015/covalent-core-json-formatter.js.map +0 -1
- package/fesm2015/covalent-core-layout.js +0 -1663
- package/fesm2015/covalent-core-layout.js.map +0 -1
- package/fesm2015/covalent-core-menu.js +0 -57
- package/fesm2015/covalent-core-menu.js.map +0 -1
- package/fesm2015/covalent-core-message.js +0 -347
- package/fesm2015/covalent-core-message.js.map +0 -1
- package/fesm2015/covalent-core-search.js +0 -564
- package/fesm2015/covalent-core-search.js.map +0 -1
- package/fesm2015/covalent-core-side-sheet.js +0 -1134
- package/fesm2015/covalent-core-side-sheet.js.map +0 -1
- package/fesm2015/covalent-core-user-profile.js +0 -103
- package/fesm2015/covalent-core-user-profile.js.map +0 -1
- package/fesm2015/covalent-core.js +0 -12
- package/fesm2015/covalent-core.js.map +0 -1
- package/file/covalent-core-file.metadata.json +0 -1
- package/file/file-input/file-input.component.scss +0 -20
- package/file/file-upload/file-upload.component.scss +0 -30
- package/file/index.d.ts +0 -1
- package/json-formatter/covalent-core-json-formatter.metadata.json +0 -1
- package/json-formatter/index.d.ts +0 -1
- package/json-formatter/json-formatter.component.scss +0 -61
- package/layout/covalent-core-layout.metadata.json +0 -1
- package/layout/index.d.ts +0 -1
- package/layout/layout-card-over/layout-card-over.component.scss +0 -42
- package/layout/layout-footer/layout-footer.component.scss +0 -4
- package/layout/layout-manage-list/layout-manage-list.component.scss +0 -78
- package/layout/layout-nav/README.md +0 -46
- package/layout/layout-nav/layout-nav.component.scss +0 -50
- package/layout/layout-nav-list/layout-nav-list.component.scss +0 -110
- package/layout/layout.component.scss +0 -20
- package/layout/navigation-drawer/navigation-drawer.component.scss +0 -73
- package/menu/covalent-core-menu.metadata.json +0 -1
- package/menu/index.d.ts +0 -1
- package/menu/menu.component.scss +0 -43
- package/message/covalent-core-message.metadata.json +0 -1
- package/message/index.d.ts +0 -1
- package/message/message.component.scss +0 -29
- package/schematics/README.md +0 -66
- package/schematics/collection.json +0 -11
- package/schematics/components.js +0 -111
- package/schematics/components.js.map +0 -1
- package/schematics/migration.json +0 -10
- package/schematics/ng-add/files/theme.scss +0 -64
- package/schematics/ng-add/index.js +0 -58
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.js +0 -3
- package/schematics/ng-add/schema.js.map +0 -1
- package/schematics/ng-add/schema.json +0 -81
- package/schematics/ng-update/index.js +0 -52
- package/schematics/ng-update/index.js.map +0 -1
- package/schematics/ng-update/target-version.js +0 -8
- package/schematics/ng-update/target-version.js.map +0 -1
- package/schematics/version-names.js +0 -6
- package/schematics/version-names.js.map +0 -1
- package/search/covalent-core-search.metadata.json +0 -1
- package/search/index.d.ts +0 -1
- package/search/search-box/README.md +0 -62
- package/search/search-box/search-box.component.scss +0 -32
- package/search/search-input/README.md +0 -65
- package/search/search-input/search-input.component.scss +0 -63
- package/side-sheet/covalent-core-side-sheet.metadata.json +0 -1
- package/side-sheet/index.d.ts +0 -1
- package/side-sheet/side-sheet.scss +0 -69
- package/theming/prebuilt/blue-grey-deep-orange.scss +0 -13
- package/theming/prebuilt/blue-orange.scss +0 -13
- package/theming/prebuilt/indigo-pink.scss +0 -13
- package/theming/prebuilt/orange-light-blue.scss +0 -13
- package/theming/prebuilt/teal-orange.scss +0 -13
- package/user-profile/covalent-core-user-profile.metadata.json +0 -1
- package/user-profile/index.d.ts +0 -1
- package/user-profile/user-profile-menu/user-profile-menu.component.scss +0 -38
@@ -0,0 +1,216 @@
|
|
1
|
+
import { merge, fromEvent } from 'rxjs';
|
2
|
+
var corners;
|
3
|
+
(function (corners) {
|
4
|
+
corners["topRight"] = "topRight";
|
5
|
+
corners["bottomRight"] = "bottomRight";
|
6
|
+
corners["bottomLeft"] = "bottomLeft";
|
7
|
+
corners["topLeft"] = "topLeft";
|
8
|
+
})(corners || (corners = {}));
|
9
|
+
var cursors;
|
10
|
+
(function (cursors) {
|
11
|
+
cursors["nesw"] = "nesw-resize";
|
12
|
+
cursors["nwse"] = "nwse-resize";
|
13
|
+
})(cursors || (cursors = {}));
|
14
|
+
var verticalAlignment;
|
15
|
+
(function (verticalAlignment) {
|
16
|
+
verticalAlignment["top"] = "top";
|
17
|
+
verticalAlignment["bottom"] = "bottom";
|
18
|
+
})(verticalAlignment || (verticalAlignment = {}));
|
19
|
+
var horizontalAlignment;
|
20
|
+
(function (horizontalAlignment) {
|
21
|
+
horizontalAlignment["right"] = "right";
|
22
|
+
horizontalAlignment["left"] = "left";
|
23
|
+
})(horizontalAlignment || (horizontalAlignment = {}));
|
24
|
+
const cornerWidth = '16px';
|
25
|
+
const offset = '0px';
|
26
|
+
const minWidth = 200;
|
27
|
+
const minHeight = 200;
|
28
|
+
function getPixels(sizeString) {
|
29
|
+
return parseFloat((sizeString || '').replace('px', ''));
|
30
|
+
}
|
31
|
+
function clamp(min, num, max) {
|
32
|
+
return Math.min(Math.max(num, min), max);
|
33
|
+
}
|
34
|
+
export class ResizableDraggableDialog {
|
35
|
+
constructor(_document, _renderer2, _dialogRef, _dragRef) {
|
36
|
+
this._document = _document;
|
37
|
+
this._renderer2 = _renderer2;
|
38
|
+
this._dialogRef = _dialogRef;
|
39
|
+
this._dragRef = _dragRef;
|
40
|
+
this.cornerElements = [];
|
41
|
+
this.pointerDownSubs = [];
|
42
|
+
this._initialPositionReset();
|
43
|
+
this._attachCorners();
|
44
|
+
}
|
45
|
+
attach() {
|
46
|
+
this.detach();
|
47
|
+
this._attachCorners();
|
48
|
+
}
|
49
|
+
detach() {
|
50
|
+
this.pointerDownSubs.forEach((sub) => sub.unsubscribe());
|
51
|
+
this.pointerDownSubs = [];
|
52
|
+
this.cornerElements.forEach((elem) => this._renderer2.removeChild(this._getDialogWrapper(), elem));
|
53
|
+
this.cornerElements = [];
|
54
|
+
}
|
55
|
+
_getDialogWrapper() {
|
56
|
+
return (this._document.getElementById(this._dialogRef.id) || {}).parentElement;
|
57
|
+
}
|
58
|
+
_getViewportDimensions() {
|
59
|
+
return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();
|
60
|
+
}
|
61
|
+
_getDialogWrapperDimensions() {
|
62
|
+
const wrapper = this._getDialogWrapper();
|
63
|
+
if (!wrapper) {
|
64
|
+
return { width: 0, height: 0 };
|
65
|
+
}
|
66
|
+
const dimensions = getComputedStyle(wrapper);
|
67
|
+
return {
|
68
|
+
width: getPixels(dimensions.width),
|
69
|
+
height: getPixels(dimensions.height),
|
70
|
+
};
|
71
|
+
}
|
72
|
+
_initialPositionReset() {
|
73
|
+
const viewportWidth = this._getViewportDimensions()?.right ?? 0;
|
74
|
+
const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;
|
75
|
+
const { width, height } = this._getDialogWrapperDimensions();
|
76
|
+
const wrapperStyle = this._getDialogWrapper()?.style;
|
77
|
+
const originalDialogRight = wrapperStyle?.marginRight;
|
78
|
+
const originalDialogLeft = wrapperStyle?.marginLeft;
|
79
|
+
const originalDialogBottom = wrapperStyle?.marginBottom;
|
80
|
+
const originalDialogTop = wrapperStyle?.marginTop;
|
81
|
+
let x;
|
82
|
+
if (originalDialogLeft) {
|
83
|
+
x = getPixels(originalDialogLeft);
|
84
|
+
}
|
85
|
+
else if (originalDialogRight) {
|
86
|
+
x = viewportWidth - getPixels(originalDialogRight) - width;
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
x = (viewportWidth - width) / 2;
|
90
|
+
}
|
91
|
+
let y;
|
92
|
+
if (originalDialogTop) {
|
93
|
+
y = getPixels(originalDialogTop);
|
94
|
+
}
|
95
|
+
else if (originalDialogBottom) {
|
96
|
+
y = viewportHeight - getPixels(originalDialogBottom) - height;
|
97
|
+
}
|
98
|
+
else {
|
99
|
+
y = (viewportHeight - height) / 2;
|
100
|
+
}
|
101
|
+
// use drag ref's mechanisms for positioning instead of the dialog's
|
102
|
+
this._dialogRef.updatePosition({
|
103
|
+
top: '0px',
|
104
|
+
right: '0px',
|
105
|
+
bottom: '0px',
|
106
|
+
left: '0px',
|
107
|
+
});
|
108
|
+
this._dragRef.setFreeDragPosition({ x, y });
|
109
|
+
}
|
110
|
+
_attachCorners() {
|
111
|
+
Object.values(corners).forEach((corner) => {
|
112
|
+
const element = this._renderer2.createElement('div');
|
113
|
+
this.cornerElements = [...this.cornerElements, element];
|
114
|
+
this._renderer2.setStyle(element, 'position', 'absolute');
|
115
|
+
this._renderer2.setStyle(element, 'width', cornerWidth);
|
116
|
+
this._renderer2.setStyle(element, 'height', cornerWidth);
|
117
|
+
this._renderer2.appendChild(this._getDialogWrapper(), element);
|
118
|
+
let cursor;
|
119
|
+
let topBottom;
|
120
|
+
let rightLeft;
|
121
|
+
if (corner === corners.topRight) {
|
122
|
+
cursor = cursors.nesw;
|
123
|
+
topBottom = verticalAlignment.top;
|
124
|
+
rightLeft = horizontalAlignment.right;
|
125
|
+
}
|
126
|
+
else if (corner === corners.bottomRight) {
|
127
|
+
cursor = cursors.nwse;
|
128
|
+
topBottom = verticalAlignment.bottom;
|
129
|
+
rightLeft = horizontalAlignment.right;
|
130
|
+
const icon = this._renderer2.createElement('i');
|
131
|
+
this._renderer2.addClass(icon, 'material-icons');
|
132
|
+
this._renderer2.appendChild(icon, this._renderer2.createText('filter_list'));
|
133
|
+
this._renderer2.appendChild(element, icon);
|
134
|
+
this._renderer2.setStyle(icon, 'transform', `rotate(${315}deg) translate(0px, ${offset})`);
|
135
|
+
this._renderer2.setStyle(icon, 'font-size', cornerWidth);
|
136
|
+
}
|
137
|
+
else if (corner === corners.bottomLeft) {
|
138
|
+
cursor = cursors.nesw;
|
139
|
+
topBottom = verticalAlignment.bottom;
|
140
|
+
rightLeft = horizontalAlignment.left;
|
141
|
+
}
|
142
|
+
else {
|
143
|
+
cursor = cursors.nwse;
|
144
|
+
topBottom = verticalAlignment.top;
|
145
|
+
rightLeft = horizontalAlignment.left;
|
146
|
+
}
|
147
|
+
this._renderer2.setStyle(element, topBottom, offset);
|
148
|
+
this._renderer2.setStyle(element, rightLeft, offset);
|
149
|
+
this._renderer2.setStyle(element, 'cursor', cursor);
|
150
|
+
const pointerDownSub = fromEvent(element, 'pointerdown').subscribe((event) => {
|
151
|
+
this._handleMouseDown(event, corner);
|
152
|
+
});
|
153
|
+
this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];
|
154
|
+
});
|
155
|
+
}
|
156
|
+
_handleMouseDown(event, corner) {
|
157
|
+
this._renderer2.setStyle(this._document.body, 'user-select', 'none');
|
158
|
+
const { width: originalWidth, height: originalHeight } = this._getDialogWrapperDimensions();
|
159
|
+
const originalMouseX = event.pageX;
|
160
|
+
const originalMouseY = event.pageY;
|
161
|
+
const { x: currentTransformX, y: currentTransformY } = this._dragRef.getFreeDragPosition();
|
162
|
+
const wrapper = this._getDialogWrapper()?.getBoundingClientRect();
|
163
|
+
const distanceFromBottom = wrapper?.bottom ?? 0;
|
164
|
+
const distanceFromRight = wrapper?.right ?? 0;
|
165
|
+
const viewportWidth = this._getViewportDimensions()?.right ?? 0;
|
166
|
+
const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;
|
167
|
+
const mouseMoveSub = fromEvent(window, 'pointermove').subscribe((e) => {
|
168
|
+
e.preventDefault(); // prevent highlighting of text when dragging
|
169
|
+
const yDelta = clamp(0, e.pageY, viewportHeight) - originalMouseY;
|
170
|
+
const xDelta = clamp(0, e.pageX, viewportWidth) - originalMouseX;
|
171
|
+
let newHeight;
|
172
|
+
let newWidth;
|
173
|
+
let newTransformY = 0;
|
174
|
+
let newTransformX = 0;
|
175
|
+
// top right
|
176
|
+
if (corner === corners.topRight) {
|
177
|
+
newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);
|
178
|
+
newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);
|
179
|
+
newTransformY = clamp(0, currentTransformY + yDelta, distanceFromBottom - newHeight);
|
180
|
+
newTransformX = currentTransformX;
|
181
|
+
}
|
182
|
+
// bottom right
|
183
|
+
else if (corner === corners.bottomRight) {
|
184
|
+
newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);
|
185
|
+
newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);
|
186
|
+
newTransformY = currentTransformY;
|
187
|
+
newTransformX = currentTransformX;
|
188
|
+
}
|
189
|
+
// bottom left
|
190
|
+
else if (corner === corners.bottomLeft) {
|
191
|
+
newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);
|
192
|
+
newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);
|
193
|
+
newTransformY = currentTransformY;
|
194
|
+
newTransformX = clamp(0, currentTransformX + xDelta, distanceFromRight - newWidth);
|
195
|
+
}
|
196
|
+
// top left
|
197
|
+
else {
|
198
|
+
newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);
|
199
|
+
newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);
|
200
|
+
newTransformX = clamp(0, currentTransformX + xDelta, distanceFromRight - newWidth);
|
201
|
+
newTransformY = clamp(0, currentTransformY + yDelta, distanceFromBottom - newHeight);
|
202
|
+
}
|
203
|
+
this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);
|
204
|
+
this._dragRef.setFreeDragPosition({
|
205
|
+
x: newTransformX,
|
206
|
+
y: newTransformY,
|
207
|
+
});
|
208
|
+
});
|
209
|
+
const mouseUpSub = merge(fromEvent(window, 'pointerup'), fromEvent(window, 'pointercancel')).subscribe(() => {
|
210
|
+
this._renderer2.removeStyle(this._document.body, 'user-select');
|
211
|
+
mouseMoveSub.unsubscribe();
|
212
|
+
mouseUpSub.unsubscribe();
|
213
|
+
});
|
214
|
+
}
|
215
|
+
}
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvcmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cvcmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLEtBQUssRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RELElBQUssT0FLSjtBQUxELFdBQUssT0FBTztJQUNWLGdDQUFxQixDQUFBO0lBQ3JCLHNDQUEyQixDQUFBO0lBQzNCLG9DQUF5QixDQUFBO0lBQ3pCLDhCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMSSxPQUFPLEtBQVAsT0FBTyxRQUtYO0FBQ0QsSUFBSyxPQUdKO0FBSEQsV0FBSyxPQUFPO0lBQ1YsK0JBQW9CLENBQUE7SUFDcEIsK0JBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQUhJLE9BQU8sS0FBUCxPQUFPLFFBR1g7QUFDRCxJQUFLLGlCQUdKO0FBSEQsV0FBSyxpQkFBaUI7SUFDcEIsZ0NBQVcsQ0FBQTtJQUNYLHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFISSxpQkFBaUIsS0FBakIsaUJBQWlCLFFBR3JCO0FBQ0QsSUFBSyxtQkFHSjtBQUhELFdBQUssbUJBQW1CO0lBQ3RCLHNDQUFlLENBQUE7SUFDZixvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHdkI7QUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztBQUNyQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFdEIsU0FBUyxTQUFTLENBQUMsVUFBa0I7SUFDbkMsT0FBTyxVQUFVLENBQUMsQ0FBQyxVQUFVLElBQUksRUFB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QUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2dCQUNoQyxDQUFDLEVBQUUsYUFBYTtnQkFDaEIsQ0FBQyxFQUFFLGFBQWE7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBaUIsS0FBSyxDQUNwQyxTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUM5QixTQUFTLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUNuQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFDaEMsYUFBYSxDQUNkLENBQUM7WUFDRixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRHJhZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AvZHJhZy1yZWYnO1xuXG5lbnVtIGNvcm5lcnMge1xuICB0b3BSaWdodCA9ICd0b3BSaWdodCcsXG4gIGJvdHRvbVJpZ2h0ID0gJ2JvdHRvbVJpZ2h0JyxcbiAgYm90dG9tTGVmdCA9ICdib3R0b21MZWZ0JyxcbiAgdG9wTGVmdCA9ICd0b3BMZWZ0Jyxcbn1cbmVudW0gY3Vyc29ycyB7XG4gIG5lc3cgPSAnbmVzdy1yZXNpemUnLFxuICBud3NlID0gJ253c2UtcmVzaXplJyxcbn1cbmVudW0gdmVydGljYWxBbGlnbm1lbnQge1xuICB0b3AgPSAndG9wJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG59XG5lbnVtIGhvcml6b250YWxBbGlnbm1lbnQge1xuICByaWdodCA9ICdyaWdodCcsXG4gIGxlZnQgPSAnbGVmdCcsXG59XG5cbmNvbnN0IGNvcm5lcldpZHRoID0gJzE2cHgnO1xuY29uc3Qgb2Zmc2V0ID0gJzBweCc7XG5jb25zdCBtaW5XaWR0aCA9IDIwMDtcbmNvbnN0IG1pbkhlaWdodCA9IDIwMDtcblxuZnVuY3Rpb24gZ2V0UGl4ZWxzKHNpemVTdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUZsb2F0KChzaXplU3RyaW5nIHx8ICcnKS5yZXBsYWNlKCdweCcsICcnKSk7XG59XG5cbmZ1bmN0aW9uIGNsYW1wKG1pbjogbnVtYmVyLCBudW06IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgobnVtLCBtaW4pLCBtYXgpO1xufVxuXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nIHtcbiAgY29ybmVyRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgcG9pbnRlckRvd25TdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PixcbiAgICBwcml2YXRlIF9kcmFnUmVmOiBEcmFnUmVmXG4gICkge1xuICAgIHRoaXMuX2luaXRpYWxQb3NpdGlvblJlc2V0KCk7XG4gICAgdGhpcy5fYXR0YWNoQ29ybmVycygpO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaCgpO1xuICAgIHRoaXMuX2F0dGFjaENvcm5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXRhY2goKTogdm9pZCB7XG4gICAgdGhpcy5wb2ludGVyRG93blN1YnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnBvaW50ZXJEb3duU3VicyA9IFtdO1xuICAgIHRoaXMuY29ybmVyRWxlbWVudHMuZm9yRWFjaCgoZWxlbTogSFRNTEVsZW1lbnQpID0+XG4gICAgICB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlQ2hpbGQodGhpcy5fZ2V0RGlhbG9nV3JhcHBlcigpLCBlbGVtKVxuICAgICk7XG4gICAgdGhpcy5jb3JuZXJFbGVtZW50cyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlhbG9nV3JhcHBlcigpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICA8SFRNTEVsZW1lbnQ+dGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5fZGlhbG9nUmVmLmlkKSB8fCB7fVxuICAgICkucGFyZW50RWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFZpZXdwb3J0RGltZW5zaW9ucygpOiBDbGllbnRSZWN0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0RGlhbG9nV3JhcHBlcigpPy5wYXJlbnRFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERpYWxvZ1dyYXBwZXJEaW1lbnNpb25zKCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB7XG4gICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuX2dldERpYWxvZ1dyYXBwZXIoKTtcbiAgICBpZiAoIXdyYXBwZXIpIHtcbiAgICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcbiAgICB9XG4gICAgY29uc3QgZGltZW5zaW9uczogQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGdldENvbXB1dGVkU3R5bGUod3JhcHBlcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBnZXRQaXhlbHMoZGltZW5zaW9ucy53aWR0aCksXG4gICAgICBoZWlnaHQ6IGdldFBpeGVscyhkaW1lbnNpb25zLmhlaWdodCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxQb3NpdGlvblJlc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0aGlzLl9nZXRWaWV3cG9ydERpbWVuc2lvbnMoKT8ucmlnaHQgPz8gMDtcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHRoaXMuX2dldFZpZXdwb3J0RGltZW5zaW9ucygpPy5ib3R0b20gPz8gMDtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuX2dldERpYWxvZ1dyYXBwZXJEaW1lbnNpb25zKCk7XG4gICAgY29uc3Qgd3JhcHBlclN0eWxlID0gdGhpcy5fZ2V0RGlhbG9nV3JhcHBlcigpPy5zdHlsZTtcbiAgICBjb25zdCBvcmlnaW5hbERpYWxvZ1JpZ2h0ID0gd3JhcHBlclN0eWxlPy5tYXJnaW5SaWdodDtcbiAgICBjb25zdCBvcmlnaW5hbERpYWxvZ0xlZnQgPSB3cmFwcGVyU3R5bGU/Lm1hcmdpbkxlZnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxEaWFsb2dCb3R0b20gPSB3cmFwcGVyU3R5bGU/Lm1hcmdpbkJvdHRvbTtcbiAgICBjb25zdCBvcmlnaW5hbERpYWxvZ1RvcCA9IHdyYXBwZXJTdHlsZT8ubWFyZ2luVG9wO1xuICAgIGxldCB4OiBudW1iZXI7XG4gICAgaWYgKG9yaWdpbmFsRGlhbG9nTGVmdCkge1xuICAgICAgeCA9IGdldFBpeGVscyhvcmlnaW5hbERpYWxvZ0xlZnQpO1xuICAgIH0gZWxzZSBpZiAob3JpZ2luYWxEaWFsb2dSaWdodCkge1xuICAgICAgeCA9IHZpZXdwb3J0V2lkdGggLSBnZXRQaXhlbHMob3JpZ2luYWxEaWFsb2dSaWdodCkgLSB3aWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9ICh2aWV3cG9ydFdpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICB9XG4gICAgbGV0IHk6IG51bWJlcjtcbiAgICBpZiAob3JpZ2luYWxEaWFsb2dUb3ApIHtcbiAgICAgIHkgPSBnZXRQaXhlbHMob3JpZ2luYWxEaWFsb2dUb3ApO1xuICAgIH0gZWxzZSBpZiAob3JpZ2luYWxEaWFsb2dCb3R0b20pIHtcbiAgICAgIHkgPSB2aWV3cG9ydEhlaWdodCAtIGdldFBpeGVscyhvcmlnaW5hbERpYWxvZ0JvdHRvbSkgLSBoZWlnaHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHkgPSAodmlld3BvcnRIZWlnaHQgLSBoZWlnaHQpIC8gMjtcbiAgICB9XG4gICAgLy8gdXNlIGRyYWcgcmVmJ3MgbWVjaGFuaXNtcyBmb3IgcG9zaXRpb25pbmcgaW5zdGVhZCBvZiB0aGUgZGlhbG9nJ3NcbiAgICB0aGlzLl9kaWFsb2dSZWYudXBkYXRlUG9zaXRpb24oe1xuICAgICAgdG9wOiAnMHB4JyxcbiAgICAgIHJpZ2h0OiAnMHB4JyxcbiAgICAgIGJvdHRvbTogJzBweCcsXG4gICAgICBsZWZ0OiAnMHB4JyxcbiAgICB9KTtcbiAgICB0aGlzLl9kcmFnUmVmLnNldEZyZWVEcmFnUG9zaXRpb24oeyB4LCB5IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoQ29ybmVycygpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKGNvcm5lcnMpLmZvckVhY2goKGNvcm5lcjogY29ybmVycykgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLmNvcm5lckVsZW1lbnRzID0gWy4uLnRoaXMuY29ybmVyRWxlbWVudHMsIGVsZW1lbnRdO1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGVsZW1lbnQsICd3aWR0aCcsIGNvcm5lcldpZHRoKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShlbGVtZW50LCAnaGVpZ2h0JywgY29ybmVyV2lkdGgpO1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuX2dldERpYWxvZ1dyYXBwZXIoKSwgZWxlbWVudCk7XG5cbiAgICAgIGxldCBjdXJzb3I6IGN1cnNvcnM7XG4gICAgICBsZXQgdG9wQm90dG9tOiB2ZXJ0aWNhbEFsaWdubWVudDtcbiAgICAgIGxldCByaWdodExlZnQ6IGhvcml6b250YWxBbGlnbm1lbnQ7XG5cbiAgICAgIGlmIChjb3JuZXIgPT09IGNvcm5lcnMudG9wUmlnaHQpIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29ycy5uZXN3O1xuICAgICAgICB0b3BCb3R0b20gPSB2ZXJ0aWNhbEFsaWdubWVudC50b3A7XG4gICAgICAgIHJpZ2h0TGVmdCA9IGhvcml6b250YWxBbGlnbm1lbnQucmlnaHQ7XG4gICAgICB9IGVsc2UgaWYgKGNvcm5lciA9PT0gY29ybmVycy5ib3R0b21SaWdodCkge1xuICAgICAgICBjdXJzb3IgPSBjdXJzb3JzLm53c2U7XG4gICAgICAgIHRvcEJvdHRvbSA9IHZlcnRpY2FsQWxpZ25tZW50LmJvdHRvbTtcbiAgICAgICAgcmlnaHRMZWZ0ID0gaG9yaXpvbnRhbEFsaWdubWVudC5yaWdodDtcblxuICAgICAgICBjb25zdCBpY29uOiBIVE1MRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyhpY29uLCAnbWF0ZXJpYWwtaWNvbnMnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKFxuICAgICAgICAgIGljb24sXG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZVRleHQoJ2ZpbHRlcl9saXN0JylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKGVsZW1lbnQsIGljb24pO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICAndHJhbnNmb3JtJyxcbiAgICAgICAgICBgcm90YXRlKCR7MzE1fWRlZykgdHJhbnNsYXRlKDBweCwgJHtvZmZzZXR9KWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGljb24sICdmb250LXNpemUnLCBjb3JuZXJXaWR0aCk7XG4gICAgICB9IGVsc2UgaWYgKGNvcm5lciA9PT0gY29ybmVycy5ib3R0b21MZWZ0KSB7XG4gICAgICAgIGN1cnNvciA9IGN1cnNvcnMubmVzdztcbiAgICAgICAgdG9wQm90dG9tID0gdmVydGljYWxBbGlnbm1lbnQuYm90dG9tO1xuICAgICAgICByaWdodExlZnQgPSBob3Jpem9udGFsQWxpZ25tZW50LmxlZnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJzb3IgPSBjdXJzb3JzLm53c2U7XG4gICAgICAgIHRvcEJvdHRvbSA9IHZlcnRpY2FsQWxpZ25tZW50LnRvcDtcbiAgICAgICAgcmlnaHRMZWZ0ID0gaG9yaXpvbnRhbEFsaWdubWVudC5sZWZ0O1xuICAgICAgfVxuICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGVsZW1lbnQsIHRvcEJvdHRvbSwgb2Zmc2V0KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShlbGVtZW50LCByaWdodExlZnQsIG9mZnNldCk7XG4gICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZWxlbWVudCwgJ2N1cnNvcicsIGN1cnNvcik7XG5cbiAgICAgIGNvbnN0IHBvaW50ZXJEb3duU3ViOiBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8UG9pbnRlckV2ZW50PihcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgJ3BvaW50ZXJkb3duJ1xuICAgICAgKS5zdWJzY3JpYmUoKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5faGFuZGxlTW91c2VEb3duKGV2ZW50LCBjb3JuZXIpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnBvaW50ZXJEb3duU3VicyA9IFsuLi50aGlzLnBvaW50ZXJEb3duU3VicywgcG9pbnRlckRvd25TdWJdO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlTW91c2VEb3duKGV2ZW50OiBQb2ludGVyRXZlbnQsIGNvcm5lcjogY29ybmVycyk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShcbiAgICAgIDxIVE1MRWxlbWVudD50aGlzLl9kb2N1bWVudC5ib2R5LFxuICAgICAgJ3VzZXItc2VsZWN0JyxcbiAgICAgICdub25lJ1xuICAgICk7XG4gICAgY29uc3QgeyB3aWR0aDogb3JpZ2luYWxXaWR0aCwgaGVpZ2h0OiBvcmlnaW5hbEhlaWdodCB9ID1cbiAgICAgIHRoaXMuX2dldERpYWxvZ1dyYXBwZXJEaW1lbnNpb25zKCk7XG4gICAgY29uc3Qgb3JpZ2luYWxNb3VzZVg6IG51bWJlciA9IGV2ZW50LnBhZ2VYO1xuICAgIGNvbnN0IG9yaWdpbmFsTW91c2VZOiBudW1iZXIgPSBldmVudC5wYWdlWTtcbiAgICBjb25zdCB7IHg6IGN1cnJlbnRUcmFuc2Zvcm1YLCB5OiBjdXJyZW50VHJhbnNmb3JtWSB9OiBQb2ludCA9XG4gICAgICB0aGlzLl9kcmFnUmVmLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcbiAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fZ2V0RGlhbG9nV3JhcHBlcigpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSB3cmFwcGVyPy5ib3R0b20gPz8gMDtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21SaWdodCA9IHdyYXBwZXI/LnJpZ2h0ID8/IDA7XG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMuX2dldFZpZXdwb3J0RGltZW5zaW9ucygpPy5yaWdodCA/PyAwO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gdGhpcy5fZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk/LmJvdHRvbSA/PyAwO1xuXG4gICAgY29uc3QgbW91c2VNb3ZlU3ViOiBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8UG9pbnRlckV2ZW50PihcbiAgICAgIHdpbmRvdyxcbiAgICAgICdwb2ludGVybW92ZSdcbiAgICApLnN1YnNjcmliZSgoZTogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgaGlnaGxpZ2h0aW5nIG9mIHRleHQgd2hlbiBkcmFnZ2luZ1xuXG4gICAgICBjb25zdCB5RGVsdGE6IG51bWJlciA9IGNsYW1wKDAsIGUucGFnZVksIHZpZXdwb3J0SGVpZ2h0KSAtIG9yaWdpbmFsTW91c2VZO1xuICAgICAgY29uc3QgeERlbHRhOiBudW1iZXIgPSBjbGFtcCgwLCBlLnBhZ2VYLCB2aWV3cG9ydFdpZHRoKSAtIG9yaWdpbmFsTW91c2VYO1xuICAgICAgbGV0IG5ld0hlaWdodDogbnVtYmVyO1xuICAgICAgbGV0IG5ld1dpZHRoOiBudW1iZXI7XG4gICAgICBsZXQgbmV3VHJhbnNmb3JtWSA9IDA7XG4gICAgICBsZXQgbmV3VHJhbnNmb3JtWCA9IDA7XG5cbiAgICAgIC8vIHRvcCByaWdodFxuICAgICAgaWYgKGNvcm5lciA9PT0gY29ybmVycy50b3BSaWdodCkge1xuICAgICAgICBuZXdIZWlnaHQgPSBjbGFtcChtaW5IZWlnaHQsIG9yaWdpbmFsSGVpZ2h0IC0geURlbHRhLCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIG5ld1dpZHRoID0gY2xhbXAobWluV2lkdGgsIG9yaWdpbmFsV2lkdGggKyB4RGVsdGEsIHZpZXdwb3J0V2lkdGgpO1xuICAgICAgICBuZXdUcmFuc2Zvcm1ZID0gY2xhbXAoXG4gICAgICAgICAgMCxcbiAgICAgICAgICBjdXJyZW50VHJhbnNmb3JtWSArIHlEZWx0YSxcbiAgICAgICAgICBkaXN0YW5jZUZyb21Cb3R0b20gLSBuZXdIZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWCA9IGN1cnJlbnRUcmFuc2Zvcm1YO1xuICAgICAgfVxuICAgICAgLy8gYm90dG9tIHJpZ2h0XG4gICAgICBlbHNlIGlmIChjb3JuZXIgPT09IGNvcm5lcnMuYm90dG9tUmlnaHQpIHtcbiAgICAgICAgbmV3SGVpZ2h0ID0gY2xhbXAobWluSGVpZ2h0LCBvcmlnaW5hbEhlaWdodCArIHlEZWx0YSwgdmlld3BvcnRIZWlnaHQpO1xuICAgICAgICBuZXdXaWR0aCA9IGNsYW1wKG1pbldpZHRoLCBvcmlnaW5hbFdpZHRoICsgeERlbHRhLCB2aWV3cG9ydFdpZHRoKTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWSA9IGN1cnJlbnRUcmFuc2Zvcm1ZO1xuICAgICAgICBuZXdUcmFuc2Zvcm1YID0gY3VycmVudFRyYW5zZm9ybVg7XG4gICAgICB9XG4gICAgICAvLyBib3R0b20gbGVmdFxuICAgICAgZWxzZSBpZiAoY29ybmVyID09PSBjb3JuZXJzLmJvdHRvbUxlZnQpIHtcbiAgICAgICAgbmV3SGVpZ2h0ID0gY2xhbXAobWluSGVpZ2h0LCBvcmlnaW5hbEhlaWdodCArIHlEZWx0YSwgdmlld3BvcnRIZWlnaHQpO1xuICAgICAgICBuZXdXaWR0aCA9IGNsYW1wKG1pbldpZHRoLCBvcmlnaW5hbFdpZHRoIC0geERlbHRhLCB2aWV3cG9ydFdpZHRoKTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWSA9IGN1cnJlbnRUcmFuc2Zvcm1ZO1xuICAgICAgICBuZXdUcmFuc2Zvcm1YID0gY2xhbXAoXG4gICAgICAgICAgMCxcbiAgICAgICAgICBjdXJyZW50VHJhbnNmb3JtWCArIHhEZWx0YSxcbiAgICAgICAgICBkaXN0YW5jZUZyb21SaWdodCAtIG5ld1dpZHRoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICAvLyB0b3AgbGVmdFxuICAgICAgZWxzZSB7XG4gICAgICAgIG5ld0hlaWdodCA9IGNsYW1wKG1pbkhlaWdodCwgb3JpZ2luYWxIZWlnaHQgLSB5RGVsdGEsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgbmV3V2lkdGggPSBjbGFtcChtaW5XaWR0aCwgb3JpZ2luYWxXaWR0aCAtIHhEZWx0YSwgdmlld3BvcnRXaWR0aCk7XG5cbiAgICAgICAgbmV3VHJhbnNmb3JtWCA9IGNsYW1wKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgY3VycmVudFRyYW5zZm9ybVggKyB4RGVsdGEsXG4gICAgICAgICAgZGlzdGFuY2VGcm9tUmlnaHQgLSBuZXdXaWR0aFxuICAgICAgICApO1xuICAgICAgICBuZXdUcmFuc2Zvcm1ZID0gY2xhbXAoXG4gICAgICAgICAgMCxcbiAgICAgICAgICBjdXJyZW50VHJhbnNmb3JtWSArIHlEZWx0YSxcbiAgICAgICAgICBkaXN0YW5jZUZyb21Cb3R0b20gLSBuZXdIZWlnaHRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2RpYWxvZ1JlZi51cGRhdGVTaXplKGAke25ld1dpZHRofXB4YCwgYCR7bmV3SGVpZ2h0fXB4YCk7XG4gICAgICB0aGlzLl9kcmFnUmVmLnNldEZyZWVEcmFnUG9zaXRpb24oe1xuICAgICAgICB4OiBuZXdUcmFuc2Zvcm1YLFxuICAgICAgICB5OiBuZXdUcmFuc2Zvcm1ZLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBtb3VzZVVwU3ViOiBTdWJzY3JpcHRpb24gPSBtZXJnZShcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdwb2ludGVydXAnKSxcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdwb2ludGVyY2FuY2VsJylcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yZW5kZXJlcjIucmVtb3ZlU3R5bGUoXG4gICAgICAgIDxIVE1MRWxlbWVudD50aGlzLl9kb2N1bWVudC5ib2R5LFxuICAgICAgICAndXNlci1zZWxlY3QnXG4gICAgICApO1xuICAgICAgbW91c2VNb3ZlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICBtb3VzZVVwU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,171 @@
|
|
1
|
+
import { Injectable, Inject, RendererFactory2 } from '@angular/core';
|
2
|
+
import { MatDialog, MatDialogConfig, } from '@angular/material/dialog';
|
3
|
+
import { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';
|
4
|
+
import { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';
|
5
|
+
import { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';
|
6
|
+
import { DragDrop } from '@angular/cdk/drag-drop';
|
7
|
+
import { DOCUMENT } from '@angular/common';
|
8
|
+
import { Subject } from 'rxjs';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
11
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
12
|
+
export class TdDialogService {
|
13
|
+
constructor(_document, _dialogService, _dragDrop, rendererFactory) {
|
14
|
+
this._document = _document;
|
15
|
+
this._dialogService = _dialogService;
|
16
|
+
this._dragDrop = _dragDrop;
|
17
|
+
this.rendererFactory = rendererFactory;
|
18
|
+
this._renderer2 = rendererFactory.createRenderer(undefined, null);
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* params:
|
22
|
+
* - component: ComponentType<T>
|
23
|
+
* - config: MatDialogConfig
|
24
|
+
* Wrapper function over the open() method in MatDialog.
|
25
|
+
* Opens a modal dialog containing the given component.
|
26
|
+
*/
|
27
|
+
open(component, config) {
|
28
|
+
return this._dialogService.open(component, config);
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Wrapper function over the closeAll() method in MatDialog.
|
32
|
+
* Closes all of the currently-open dialogs.
|
33
|
+
*/
|
34
|
+
closeAll() {
|
35
|
+
this._dialogService.closeAll();
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* params:
|
39
|
+
* - config: IAlertConfig {
|
40
|
+
* message: string;
|
41
|
+
* title?: string;
|
42
|
+
* viewContainerRef?: ViewContainerRef;
|
43
|
+
* closeButton?: string;
|
44
|
+
* }
|
45
|
+
*
|
46
|
+
* Opens an alert dialog with the provided config.
|
47
|
+
* Returns an MatDialogRef<TdAlertDialogComponent> object.
|
48
|
+
*/
|
49
|
+
openAlert(config) {
|
50
|
+
const dialogConfig = this._createConfig(config);
|
51
|
+
const dialogRef = this._dialogService.open(TdAlertDialogComponent, dialogConfig);
|
52
|
+
const alertDialogComponent = dialogRef.componentInstance;
|
53
|
+
alertDialogComponent.title = config.title;
|
54
|
+
alertDialogComponent.message = config.message;
|
55
|
+
if (config.closeButton) {
|
56
|
+
alertDialogComponent.closeButton = config.closeButton;
|
57
|
+
}
|
58
|
+
return dialogRef;
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* params:
|
62
|
+
* - config: IConfirmConfig {
|
63
|
+
* message: string;
|
64
|
+
* title?: string;
|
65
|
+
* viewContainerRef?: ViewContainerRef;
|
66
|
+
* acceptButton?: string;
|
67
|
+
* cancelButton?: string;
|
68
|
+
* isDestructive?: boolean;
|
69
|
+
* }
|
70
|
+
*
|
71
|
+
* Opens a confirm dialog with the provided config.
|
72
|
+
* Returns an MatDialogRef<TdConfirmDialogComponent> object.
|
73
|
+
*/
|
74
|
+
openConfirm(config) {
|
75
|
+
const dialogConfig = this._createConfig(config);
|
76
|
+
const dialogRef = this._dialogService.open(TdConfirmDialogComponent, dialogConfig);
|
77
|
+
const confirmDialogComponent = dialogRef.componentInstance;
|
78
|
+
confirmDialogComponent.title = config.title;
|
79
|
+
confirmDialogComponent.message = config.message;
|
80
|
+
if (config.acceptButton) {
|
81
|
+
confirmDialogComponent.acceptButton = config.acceptButton;
|
82
|
+
}
|
83
|
+
if (config.isDestructive) {
|
84
|
+
confirmDialogComponent.isDestructive = config.isDestructive;
|
85
|
+
}
|
86
|
+
if (config.cancelButton) {
|
87
|
+
confirmDialogComponent.cancelButton = config.cancelButton;
|
88
|
+
}
|
89
|
+
return dialogRef;
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* params:
|
93
|
+
* - config: IPromptConfig {
|
94
|
+
* message: string;
|
95
|
+
* title?: string;
|
96
|
+
* value?: string;
|
97
|
+
* viewContainerRef?: ViewContainerRef;
|
98
|
+
* acceptButton?: string;
|
99
|
+
* cancelButton?: string;
|
100
|
+
* }
|
101
|
+
*
|
102
|
+
* Opens a prompt dialog with the provided config.
|
103
|
+
* Returns an MatDialogRef<TdPromptDialogComponent> object.
|
104
|
+
*/
|
105
|
+
openPrompt(config) {
|
106
|
+
const dialogConfig = this._createConfig(config);
|
107
|
+
const dialogRef = this._dialogService.open(TdPromptDialogComponent, dialogConfig);
|
108
|
+
const promptDialogComponent = dialogRef.componentInstance;
|
109
|
+
promptDialogComponent.title = config.title;
|
110
|
+
promptDialogComponent.message = config.message;
|
111
|
+
promptDialogComponent.value = config.value;
|
112
|
+
if (config.acceptButton) {
|
113
|
+
promptDialogComponent.acceptButton = config.acceptButton;
|
114
|
+
}
|
115
|
+
if (config.cancelButton) {
|
116
|
+
promptDialogComponent.cancelButton = config.cancelButton;
|
117
|
+
}
|
118
|
+
return dialogRef;
|
119
|
+
}
|
120
|
+
/**
|
121
|
+
* Opens a draggable dialog containing the given component.
|
122
|
+
*/
|
123
|
+
openDraggable({ component, config, dragHandleSelectors, draggableClass, }) {
|
124
|
+
const matDialogRef = this._dialogService.open(component, config);
|
125
|
+
const dragRefSubject = new Subject();
|
126
|
+
const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';
|
127
|
+
const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';
|
128
|
+
matDialogRef.afterOpened().subscribe(() => {
|
129
|
+
const dialogElement = (this._document.getElementById(matDialogRef.id));
|
130
|
+
const draggableElement = this._dragDrop.createDrag(dialogElement);
|
131
|
+
if (draggableClass) {
|
132
|
+
const childComponent = dialogElement.firstElementChild;
|
133
|
+
this._renderer2.addClass(childComponent, draggableClass);
|
134
|
+
}
|
135
|
+
if (dragHandleSelectors && dragHandleSelectors.length) {
|
136
|
+
const dragHandles = dragHandleSelectors.reduce((acc, curr) => [
|
137
|
+
...acc,
|
138
|
+
...Array.from(dialogElement.querySelectorAll(curr)),
|
139
|
+
], []);
|
140
|
+
if (dragHandles.length > 0) {
|
141
|
+
draggableElement.withHandles(dragHandles);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);
|
145
|
+
if (rootElement) {
|
146
|
+
draggableElement.withRootElement(rootElement);
|
147
|
+
}
|
148
|
+
const boundaryElement = dialogElement.closest(CDK_OVERLAY_CONTAINER_SELECTOR);
|
149
|
+
if (boundaryElement) {
|
150
|
+
draggableElement.withBoundaryElement(boundaryElement);
|
151
|
+
}
|
152
|
+
dragRefSubject.next(draggableElement);
|
153
|
+
});
|
154
|
+
return { matDialogRef, dragRefSubject };
|
155
|
+
}
|
156
|
+
_createConfig(config) {
|
157
|
+
const dialogConfig = new MatDialogConfig();
|
158
|
+
dialogConfig.width = '400px';
|
159
|
+
Object.assign(dialogConfig, config);
|
160
|
+
return dialogConfig;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
TdDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDialogService, deps: [{ token: DOCUMENT }, { token: i1.MatDialog }, { token: i2.DragDrop }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
164
|
+
TdDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDialogService });
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDialogService, decorators: [{
|
166
|
+
type: Injectable
|
167
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
168
|
+
type: Inject,
|
169
|
+
args: [DOCUMENT]
|
170
|
+
}] }, { type: i1.MatDialog }, { type: i2.DragDrop }, { type: i0.RendererFactory2 }]; } });
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUNMLFNBQVMsRUFFVCxlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFFBQVEsRUFBVyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBb0MvQixNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUM0QixTQUFjLEVBQ2hDLGNBQXlCLEVBQ3pCLFNBQW1CLEVBQ25CLGVBQWlDO1FBSGYsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBVztRQUN6QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUV6QyxJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQ1QsU0FBMkIsRUFDM0IsTUFBd0I7UUFFeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FBQyxNQUFvQjtRQUNuQyxNQUFNLFlBQVksR0FBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxNQUFNLG9CQUFvQixHQUN4QixTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDOUIsb0JBQW9CLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUMsb0JBQW9CLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RCLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxXQUFXLENBQ2hCLE1BQXNCO1FBRXRCLE1BQU0sWUFBWSxHQUFvQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25FLE1BQU0sc0JBQXNCLEdBQzFCLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QyxzQkFBc0IsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNoRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDdkIsc0JBQXNCLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDM0Q7UUFDRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDeEIsc0JBQXNCLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7U0FDN0Q7UUFDRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDdkIsc0JBQXNCLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDM0Q7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLFVBQVUsQ0FDZixNQUFxQjtRQUVyQixNQUFNLFlBQVksR0FBb0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRSxNQUFNLFNBQVMsR0FDYixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNsRSxNQUFNLHFCQUFxQixHQUN6QixTQUFTLENBQUMsaUJBQWlCLENBQUM7UUFDOUIscUJBQXFCLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0MscUJBQXFCLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0MscUJBQXFCLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLHFCQUFxQixDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLHFCQUFxQixDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYSxDQUFJLEVBQ3RCLFNBQVMsRUFDVCxNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLGNBQWMsR0FDTTtRQUNwQixNQUFNLFlBQVksR0FBeUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ2pFLFNBQVMsRUFDVCxNQUFNLENBQ1AsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRWhFLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUM7UUFDdEQsTUFBTSw4QkFBOEIsR0FBRyx3QkFBd0IsQ0FBQztRQUVoRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4QyxNQUFNLGFBQWEsR0FBNkIsQ0FDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1lBQ0YsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFM0MsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzFEO1lBQ0QsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JELE1BQU0sV0FBVyxHQUFjLG1CQUFtQixDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxHQUFjLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQztvQkFDaEMsR0FBRyxHQUFHO29CQUNOLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BELEVBQ0QsRUFBRSxDQUNILENBQUM7Z0JBQ0YsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsZ0JBQWdCLENBQUMsV0FBVyxDQUFnQixXQUFXLENBQUMsQ0FBQztpQkFDMUQ7YUFDRjtZQUNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNyRSxJQUFJLFdBQVcsRUFBRTtnQkFDZixnQkFBZ0IsQ0FBQyxlQUFlLENBQWMsV0FBVyxDQUFDLENBQUM7YUFDNUQ7WUFFRCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUMzQyw4QkFBOEIsQ0FDL0IsQ0FBQztZQUNGLElBQUksZUFBZSxFQUFFO2dCQUNuQixnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBYyxlQUFlLENBQUMsQ0FBQzthQUNwRTtZQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFxQjtRQUN6QyxNQUFNLFlBQVksR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUM1RCxZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzs0R0FqTVUsZUFBZSxrQkFJaEIsUUFBUTtnSEFKUCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNYXREaWFsb2csXG4gIE1hdERpYWxvZ1JlZixcbiAgTWF0RGlhbG9nQ29uZmlnLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBUZEFsZXJ0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYWxlcnQtZGlhbG9nL2FsZXJ0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvbXB0LWRpYWxvZy9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcmFnRHJvcCwgRHJhZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEaWFsb2dDb25maWcgZXh0ZW5kcyBNYXREaWFsb2dDb25maWcge1xuICB0aXRsZT86IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBbGVydENvbmZpZyBleHRlbmRzIElEaWFsb2dDb25maWcge1xuICBjbG9zZUJ1dHRvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlybUNvbmZpZyBleHRlbmRzIElEaWFsb2dDb25maWcge1xuICBhY2NlcHRCdXR0b24/OiBzdHJpbmc7XG4gIGNhbmNlbEJ1dHRvbj86IHN0cmluZztcbiAgaXNEZXN0cnVjdGl2ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb21wdENvbmZpZyBleHRlbmRzIElDb25maXJtQ29uZmlnIHtcbiAgdmFsdWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYWdnYWJsZUNvbmZpZzxUPiB7XG4gIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPjtcbiAgY29uZmlnPzogTWF0RGlhbG9nQ29uZmlnO1xuICAvLyBDU1Mgc2VsZWN0b3JzIG9mIGVsZW1lbnQocykgaW5zaWRlIHRoZSBjb21wb25lbnQgbWVhbnQgdG8gYmUgZHJhZyBoYW5kbGUocylcbiAgZHJhZ0hhbmRsZVNlbGVjdG9ycz86IHN0cmluZ1tdO1xuICAvLyBDbGFzcyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNvbXBvbmVudCBzaWduaWZ5aW5nIGRyYWctYWJpbGl0eVxuICBkcmFnZ2FibGVDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ2dhYmxlUmVmczxUPiB7XG4gIG1hdERpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFQ+O1xuICBkcmFnUmVmU3ViamVjdDogU3ViamVjdDxEcmFnUmVmPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRkRGlhbG9nU2VydmljZSB7XG4gIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX2RyYWdEcm9wOiBEcmFnRHJvcCxcbiAgICBwcml2YXRlIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLl9yZW5kZXJlcjIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJhbXM6XG4gICAqIC0gY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+XG4gICAqIC0gY29uZmlnOiBNYXREaWFsb2dDb25maWdcbiAgICogV3JhcHBlciBmdW5jdGlvbiBvdmVyIHRoZSBvcGVuKCkgbWV0aG9kIGluIE1hdERpYWxvZy5cbiAgICogT3BlbnMgYSBtb2RhbCBkaWFsb2cgY29udGFpbmluZyB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG9wZW48VD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZz86IE1hdERpYWxvZ0NvbmZpZ1xuICApOiBNYXREaWFsb2dSZWY8VD4ge1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oY29tcG9uZW50LCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgZnVuY3Rpb24gb3ZlciB0aGUgY2xvc2VBbGwoKSBtZXRob2QgaW4gTWF0RGlhbG9nLlxuICAgKiBDbG9zZXMgYWxsIG9mIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2UuY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJhbXM6XG4gICAqIC0gY29uZmlnOiBJQWxlcnRDb25maWcge1xuICAgKiAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgKiAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAqICAgICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcbiAgICogICAgIGNsb3NlQnV0dG9uPzogc3RyaW5nO1xuICAgKiB9XG4gICAqXG4gICAqIE9wZW5zIGFuIGFsZXJ0IGRpYWxvZyB3aXRoIHRoZSBwcm92aWRlZCBjb25maWcuXG4gICAqIFJldHVybnMgYW4gTWF0RGlhbG9nUmVmPFRkQWxlcnREaWFsb2dDb21wb25lbnQ+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBvcGVuQWxlcnQoY29uZmlnOiBJQWxlcnRDb25maWcpOiBNYXREaWFsb2dSZWY8VGRBbGVydERpYWxvZ0NvbXBvbmVudD4ge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0gdGhpcy5fY3JlYXRlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGRBbGVydERpYWxvZ0NvbXBvbmVudD4gPVxuICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFRkQWxlcnREaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgY29uc3QgYWxlcnREaWFsb2dDb21wb25lbnQ6IFRkQWxlcnREaWFsb2dDb21wb25lbnQgPVxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGFsZXJ0RGlhbG9nQ29tcG9uZW50LnRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIGFsZXJ0RGlhbG9nQ29tcG9uZW50Lm1lc3NhZ2UgPSBjb25maWcubWVzc2FnZTtcbiAgICBpZiAoY29uZmlnLmNsb3NlQnV0dG9uKSB7XG4gICAgICBhbGVydERpYWxvZ0NvbXBvbmVudC5jbG9zZUJ1dHRvbiA9IGNvbmZpZy5jbG9zZUJ1dHRvbjtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJhbXM6XG4gICAqIC0gY29uZmlnOiBJQ29uZmlybUNvbmZpZyB7XG4gICAqICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAqICAgICB0aXRsZT86IHN0cmluZztcbiAgICogICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgKiAgICAgYWNjZXB0QnV0dG9uPzogc3RyaW5nO1xuICAgKiAgICAgY2FuY2VsQnV0dG9uPzogc3RyaW5nO1xuICAgKiAgICAgaXNEZXN0cnVjdGl2ZT86IGJvb2xlYW47XG4gICAqIH1cbiAgICpcbiAgICogT3BlbnMgYSBjb25maXJtIGRpYWxvZyB3aXRoIHRoZSBwcm92aWRlZCBjb25maWcuXG4gICAqIFJldHVybnMgYW4gTWF0RGlhbG9nUmVmPFRkQ29uZmlybURpYWxvZ0NvbXBvbmVudD4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG9wZW5Db25maXJtKFxuICAgIGNvbmZpZzogSUNvbmZpcm1Db25maWdcbiAgKTogTWF0RGlhbG9nUmVmPFRkQ29uZmlybURpYWxvZ0NvbXBvbmVudD4ge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0gdGhpcy5fY3JlYXRlQ29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGRDb25maXJtRGlhbG9nQ29tcG9uZW50PiA9XG4gICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oVGRDb25maXJtRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIGNvbnN0IGNvbmZpcm1EaWFsb2dDb21wb25lbnQ6IFRkQ29uZmlybURpYWxvZ0NvbXBvbmVudCA9XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgY29uZmlybURpYWxvZ0NvbXBvbmVudC50aXRsZSA9IGNvbmZpZy50aXRsZTtcbiAgICBjb25maXJtRGlhbG9nQ29tcG9uZW50Lm1lc3NhZ2UgPSBjb25maWcubWVzc2FnZTtcbiAgICBpZiAoY29uZmlnLmFjY2VwdEJ1dHRvbikge1xuICAgICAgY29uZmlybURpYWxvZ0NvbXBvbmVudC5hY2NlcHRCdXR0b24gPSBjb25maWcuYWNjZXB0QnV0dG9uO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmlzRGVzdHJ1Y3RpdmUpIHtcbiAgICAgIGNvbmZpcm1EaWFsb2dDb21wb25lbnQuaXNEZXN0cnVjdGl2ZSA9IGNvbmZpZy5pc0Rlc3RydWN0aXZlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNhbmNlbEJ1dHRvbikge1xuICAgICAgY29uZmlybURpYWxvZ0NvbXBvbmVudC5jYW5jZWxCdXR0b24gPSBjb25maWcuY2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBjb25maWc6IElQcm9tcHRDb25maWcge1xuICAgKiAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgKiAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAqICAgICB2YWx1ZT86IHN0cmluZztcbiAgICogICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgKiAgICAgYWNjZXB0QnV0dG9uPzogc3RyaW5nO1xuICAgKiAgICAgY2FuY2VsQnV0dG9uPzogc3RyaW5nO1xuICAgKiB9XG4gICAqXG4gICAqIE9wZW5zIGEgcHJvbXB0IGRpYWxvZyB3aXRoIHRoZSBwcm92aWRlZCBjb25maWcuXG4gICAqIFJldHVybnMgYW4gTWF0RGlhbG9nUmVmPFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgb3BlblByb21wdChcbiAgICBjb25maWc6IElQcm9tcHRDb25maWdcbiAgKTogTWF0RGlhbG9nUmVmPFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50PiB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB0aGlzLl9jcmVhdGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZFByb21wdERpYWxvZ0NvbXBvbmVudD4gPVxuICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIGNvbnN0IHByb21wdERpYWxvZ0NvbXBvbmVudDogVGRQcm9tcHREaWFsb2dDb21wb25lbnQgPVxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIHByb21wdERpYWxvZ0NvbXBvbmVudC50aXRsZSA9IGNvbmZpZy50aXRsZTtcbiAgICBwcm9tcHREaWFsb2dDb21wb25lbnQubWVzc2FnZSA9IGNvbmZpZy5tZXNzYWdlO1xuICAgIHByb21wdERpYWxvZ0NvbXBvbmVudC52YWx1ZSA9IGNvbmZpZy52YWx1ZTtcbiAgICBpZiAoY29uZmlnLmFjY2VwdEJ1dHRvbikge1xuICAgICAgcHJvbXB0RGlhbG9nQ29tcG9uZW50LmFjY2VwdEJ1dHRvbiA9IGNvbmZpZy5hY2NlcHRCdXR0b247XG4gICAgfVxuICAgIGlmIChjb25maWcuY2FuY2VsQnV0dG9uKSB7XG4gICAgICBwcm9tcHREaWFsb2dDb21wb25lbnQuY2FuY2VsQnV0dG9uID0gY29uZmlnLmNhbmNlbEJ1dHRvbjtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGRyYWdnYWJsZSBkaWFsb2cgY29udGFpbmluZyB0aGUgZ2l2ZW4gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG9wZW5EcmFnZ2FibGU8VD4oe1xuICAgIGNvbXBvbmVudCxcbiAgICBjb25maWcsXG4gICAgZHJhZ0hhbmRsZVNlbGVjdG9ycyxcbiAgICBkcmFnZ2FibGVDbGFzcyxcbiAgfTogSURyYWdnYWJsZUNvbmZpZzxUPik6IElEcmFnZ2FibGVSZWZzPFQ+IHtcbiAgICBjb25zdCBtYXREaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBhbnk+ID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgY29tcG9uZW50LFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgICBjb25zdCBkcmFnUmVmU3ViamVjdDogU3ViamVjdDxEcmFnUmVmPiA9IG5ldyBTdWJqZWN0PERyYWdSZWY+KCk7XG5cbiAgICBjb25zdCBDREtfT1ZFUkxBWV9QQU5FX1NFTEVDVE9SID0gJy5jZGstb3ZlcmxheS1wYW5lJztcbiAgICBjb25zdCBDREtfT1ZFUkxBWV9DT05UQUlORVJfU0VMRUNUT1IgPSAnLmNkay1vdmVybGF5LWNvbnRhaW5lcic7XG5cbiAgICBtYXREaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZGlhbG9nRWxlbWVudDogSFRNTEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+KFxuICAgICAgICB0aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChtYXREaWFsb2dSZWYuaWQpXG4gICAgICApO1xuICAgICAgY29uc3QgZHJhZ2dhYmxlRWxlbWVudDogRHJhZ1JlZiA9XG4gICAgICAgIHRoaXMuX2RyYWdEcm9wLmNyZWF0ZURyYWcoZGlhbG9nRWxlbWVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2FibGVDbGFzcykge1xuICAgICAgICBjb25zdCBjaGlsZENvbXBvbmVudCA9IGRpYWxvZ0VsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5hZGRDbGFzcyhjaGlsZENvbXBvbmVudCwgZHJhZ2dhYmxlQ2xhc3MpO1xuICAgICAgfVxuICAgICAgaWYgKGRyYWdIYW5kbGVTZWxlY3RvcnMgJiYgZHJhZ0hhbmRsZVNlbGVjdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZHJhZ0hhbmRsZXM6IEVsZW1lbnRbXSA9IGRyYWdIYW5kbGVTZWxlY3RvcnMucmVkdWNlKFxuICAgICAgICAgIChhY2M6IEVsZW1lbnRbXSwgY3Vycjogc3RyaW5nKSA9PiBbXG4gICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAuLi5BcnJheS5mcm9tKGRpYWxvZ0VsZW1lbnQucXVlcnlTZWxlY3RvckFsbChjdXJyKSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICBpZiAoZHJhZ0hhbmRsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGRyYWdnYWJsZUVsZW1lbnQud2l0aEhhbmRsZXMoPEhUTUxFbGVtZW50W10+ZHJhZ0hhbmRsZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCByb290RWxlbWVudCA9IGRpYWxvZ0VsZW1lbnQuY2xvc2VzdChDREtfT1ZFUkxBWV9QQU5FX1NFTEVDVE9SKTtcbiAgICAgIGlmIChyb290RWxlbWVudCkge1xuICAgICAgICBkcmFnZ2FibGVFbGVtZW50LndpdGhSb290RWxlbWVudCg8SFRNTEVsZW1lbnQ+cm9vdEVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBib3VuZGFyeUVsZW1lbnQgPSBkaWFsb2dFbGVtZW50LmNsb3Nlc3QoXG4gICAgICAgIENES19PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUlxuICAgICAgKTtcbiAgICAgIGlmIChib3VuZGFyeUVsZW1lbnQpIHtcbiAgICAgICAgZHJhZ2dhYmxlRWxlbWVudC53aXRoQm91bmRhcnlFbGVtZW50KDxIVE1MRWxlbWVudD5ib3VuZGFyeUVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgZHJhZ1JlZlN1YmplY3QubmV4dChkcmFnZ2FibGVFbGVtZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7IG1hdERpYWxvZ1JlZiwgZHJhZ1JlZlN1YmplY3QgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbmZpZyhjb25maWc6IElEaWFsb2dDb25maWcpOiBNYXREaWFsb2dDb25maWcge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc0MDBweCc7XG4gICAgT2JqZWN0LmFzc2lnbihkaWFsb2dDb25maWcsIGNvbmZpZyk7XG4gICAgcmV0dXJuIGRpYWxvZ0NvbmZpZztcbiAgfVxufVxuIl19
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/material/toolbar";
|
4
|
+
import * as i2 from "@angular/material/button";
|
5
|
+
import * as i3 from "@angular/material/icon";
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
7
|
+
export class TdWindowDialogComponent {
|
8
|
+
constructor() {
|
9
|
+
this.docked = false;
|
10
|
+
this.dockToggled = new EventEmitter();
|
11
|
+
this.closed = new EventEmitter();
|
12
|
+
this.toolbarHeight = 56;
|
13
|
+
}
|
14
|
+
toggleDockedState() {
|
15
|
+
this.dockToggled.emit(this.docked);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
TdWindowDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdWindowDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
19
|
+
TdWindowDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdWindowDialogComponent, selector: "td-window-dialog", inputs: { toolbarColor: "toolbarColor", docked: "docked", title: "title", toggleDockedStateLabel: "toggleDockedStateLabel", closeLabel: "closeLabel" }, outputs: { dockToggled: "dockToggled", closed: "closed" }, ngImport: i0, template: "<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n", styles: [":host{height:100%;display:flex;flex-direction:column}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-window-dialog-toolbar{background:none}.td-window-dialog-title{margin-bottom:0}.td-window-dialog-close{margin-right:-8px}::ng-deep .td-window-dialog .mat-dialog-container{padding:0}\n"], components: [{ type: i1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdWindowDialogComponent, decorators: [{
|
21
|
+
type: Component,
|
22
|
+
args: [{ selector: 'td-window-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n", styles: [":host{height:100%;display:flex;flex-direction:column}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-window-dialog-toolbar{background:none}.td-window-dialog-title{margin-bottom:0}.td-window-dialog-close{margin-right:-8px}::ng-deep .td-window-dialog .mat-dialog-container{padding:0}\n"] }]
|
23
|
+
}], propDecorators: { toolbarColor: [{
|
24
|
+
type: Input
|
25
|
+
}], docked: [{
|
26
|
+
type: Input
|
27
|
+
}], title: [{
|
28
|
+
type: Input
|
29
|
+
}], toggleDockedStateLabel: [{
|
30
|
+
type: Input
|
31
|
+
}], closeLabel: [{
|
32
|
+
type: Input
|
33
|
+
}], dockToggled: [{
|
34
|
+
type: Output
|
35
|
+
}], closed: [{
|
36
|
+
type: Output
|
37
|
+
}] } });
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvd2luZG93LWRpYWxvZy93aW5kb3ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9kaWFsb2dzL3NyYy93aW5kb3ctZGlhbG9nL3dpbmRvdy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsR0FDeEIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVN2QixNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBUVcsV0FBTSxHQUFJLEtBQUssQ0FBQztRQU1mLGdCQUFXLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsV0FBTSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFELGtCQUFhLEdBQUcsRUFBRSxDQUFDO0tBS3BCO0lBSEMsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O29IQWZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDJRQ2ZwQyx5b0NBK0JBOzJGRGhCYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtd2luZG93LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi93aW5kb3ctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2luZG93LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGRXaW5kb3dEaWFsb2dDb21wb25lbnQge1xuICBASW5wdXQoKSB0b29sYmFyQ29sb3I/OiBUaGVtZVBhbGV0dGU7XG4gIEBJbnB1dCgpIGRvY2tlZD8gPSBmYWxzZTtcblxuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdG9nZ2xlRG9ja2VkU3RhdGVMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgY2xvc2VMYWJlbD86IHN0cmluZztcblxuICBAT3V0cHV0KCkgZG9ja1RvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHRvb2xiYXJIZWlnaHQgPSA1NjtcblxuICB0b2dnbGVEb2NrZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRvY2tUb2dnbGVkLmVtaXQodGhpcy5kb2NrZWQpO1xuICB9XG59XG4iLCI8bWF0LXRvb2xiYXJcbiAgW2NvbG9yXT1cInRvb2xiYXJDb2xvclwiXG4gIGNsYXNzPVwidGQtd2luZG93LWRpYWxvZy10b29sYmFyXCJcbiAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwidG9vbGJhckhlaWdodFwiXG4gIFtzdHlsZS5jdXJzb3JdPVwiZG9ja2VkID8gJ2luaGVyaXQnIDogJ21vdmUnXCJcbj5cbiAgPG1hdC10b29sYmFyLXJvdyBbc3R5bGUuaGVpZ2h0LnB4XT1cInRvb2xiYXJIZWlnaHRcIj5cbiAgICA8ZGl2IGxheW91dD1cInJvd1wiIGxheW91dC1hbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZsZXg+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdC10aXRsZSB0ZC13aW5kb3ctZGlhbG9nLXRpdGxlIHRydW5jYXRlXCIgZmxleD5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDwhLS0gVE9ETzogUmVzaXppbmcgYSBkcmFnLWFuZC1kcm9wIGVsZW1lbnQgd2FzIG5vdCB3b3JraW5nIHNvIHJlbW92ZWQgZG9ja2luZy91bmRvY2tpbmcgZm9yIG5vdy0tPlxuICAgICAgPCEtLSA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0VG9vbHRpcF09XCJ0b2dnbGVEb2NrZWRTdGF0ZUxhYmVsXCIgKGNsaWNrKT1cInRvZ2dsZURvY2tlZFN0YXRlKClcIj5cbiAgICAgICAgPG1hdC1pY29uIFthdHRyLmFyaWEtbGFiZWxdPVwidG9nZ2xlRG9ja2VkU3RhdGVMYWJlbFwiPlxuICAgICAgICAgIHt7IGRvY2tlZCA/ICd1bmZvbGRfbW9yZScgOiAndW5mb2xkX2xlc3MnIH19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj4gLS0+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFttYXRUb29sdGlwXT1cImNsb3NlTGFiZWwgPz8gJydcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VkLmVtaXQoKVwiXG4gICAgICAgIGNsYXNzPVwidGQtd2luZG93LWRpYWxvZy1jbG9zZVwiXG4gICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCInY2xvc2UtYnV0dG9uJ1wiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbiBbYXR0ci5hcmlhLWxhYmVsXT1cImNsb3NlTGFiZWxcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtdG9vbGJhci1yb3c+XG48L21hdC10b29sYmFyPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './public_api';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtY29yZS1keW5hbWljLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZHluYW1pYy1tZW51L3NyYy9jb3ZhbGVudC1jb3JlLWR5bmFtaWMtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
2
|
+
import { MatMenu } from '@angular/material/menu';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@angular/material/menu";
|
5
|
+
import * as i2 from "@angular/material/icon";
|
6
|
+
import * as i3 from "@angular/material/divider";
|
7
|
+
import * as i4 from "./dynamic-menu-link/dynamic-menu-link.component";
|
8
|
+
import * as i5 from "@angular/common";
|
9
|
+
export class TdDynamicMenuItemComponent {
|
10
|
+
constructor() {
|
11
|
+
this.itemClicked = new EventEmitter();
|
12
|
+
}
|
13
|
+
emitClicked(event) {
|
14
|
+
this.itemClicked.emit(event);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
TdDynamicMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
18
|
+
TdDynamicMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdDynamicMenuItemComponent, selector: "td-dynamic-menu-item", inputs: { items: "items" }, outputs: { itemClicked: "itemClicked" }, viewQueries: [{ propertyName: "childMenu", first: true, predicate: ["childMenu"], descendants: true, static: true }], ngImport: i0, template: "<mat-menu #childMenu=\"matMenu\" [overlapTrigger]=\"false\">\n <ng-template let-item let-index=\"index\" ngFor [ngForOf]=\"items\">\n <ng-container *ngIf=\"item.children && item.children.length > 0\">\n <button mat-menu-item [id]=\"item.id\" [matMenuTriggerFor]=\"menu.childMenu\">\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span *ngIf=\"item.text\">\n {{ item.text }}\n </span>\n </button>\n <td-dynamic-menu-item\n #menu\n [items]=\"item.children\"\n ></td-dynamic-menu-item>\n </ng-container>\n <ng-container *ngIf=\"!item.children || item.children.length === 0\">\n <ng-container *ngIf=\"!item.link && !item.action\">\n <mat-divider class=\"group-divider\" *ngIf=\"index > 0\"></mat-divider>\n <div class=\"group-label text-sm\">{{ item.text }}</div>\n </ng-container>\n <ng-container *ngIf=\"item.link || item.action\">\n <div mat-menu-item class=\"pad-none\">\n <td-dynamic-menu-link\n [item]=\"item\"\n (itemClicked)=\"emitClicked($event)\"\n ></td-dynamic-menu-link>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n</mat-menu>\n", styles: [".group-divider{margin:8px}.group-label{padding:16px}\n"], components: [{ type: i1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: TdDynamicMenuItemComponent, selector: "td-dynamic-menu-item", inputs: ["items"], outputs: ["itemClicked"] }, { type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i4.TdDynamicMenuLinkComponent, selector: "td-dynamic-menu-link", inputs: ["item"], outputs: ["itemClicked"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicMenuItemComponent, decorators: [{
|
20
|
+
type: Component,
|
21
|
+
args: [{ selector: 'td-dynamic-menu-item', template: "<mat-menu #childMenu=\"matMenu\" [overlapTrigger]=\"false\">\n <ng-template let-item let-index=\"index\" ngFor [ngForOf]=\"items\">\n <ng-container *ngIf=\"item.children && item.children.length > 0\">\n <button mat-menu-item [id]=\"item.id\" [matMenuTriggerFor]=\"menu.childMenu\">\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span *ngIf=\"item.text\">\n {{ item.text }}\n </span>\n </button>\n <td-dynamic-menu-item\n #menu\n [items]=\"item.children\"\n ></td-dynamic-menu-item>\n </ng-container>\n <ng-container *ngIf=\"!item.children || item.children.length === 0\">\n <ng-container *ngIf=\"!item.link && !item.action\">\n <mat-divider class=\"group-divider\" *ngIf=\"index > 0\"></mat-divider>\n <div class=\"group-label text-sm\">{{ item.text }}</div>\n </ng-container>\n <ng-container *ngIf=\"item.link || item.action\">\n <div mat-menu-item class=\"pad-none\">\n <td-dynamic-menu-link\n [item]=\"item\"\n (itemClicked)=\"emitClicked($event)\"\n ></td-dynamic-menu-link>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n</mat-menu>\n", styles: [".group-divider{margin:8px}.group-label{padding:16px}\n"] }]
|
22
|
+
}], propDecorators: { items: [{
|
23
|
+
type: Input
|
24
|
+
}], itemClicked: [{
|
25
|
+
type: Output
|
26
|
+
}], childMenu: [{
|
27
|
+
type: ViewChild,
|
28
|
+
args: ['childMenu', { static: true }]
|
29
|
+
}] } });
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2R5bmFtaWMtbWVudS9zcmMvZHluYW1pYy1tZW51LWl0ZW0vZHluYW1pYy1tZW51LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2R5bmFtaWMtbWVudS9zcmMvZHluYW1pYy1tZW51LWl0ZW0vZHluYW1pYy1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBUWpELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFRWSxnQkFBVyxHQUNuQixJQUFJLFlBQVksRUFBZ0MsQ0FBQztLQU9wRDtJQUhDLFdBQVcsQ0FBQyxLQUFtQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzt1SEFWVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix1UENmdkMsZzZDQXFDQSxpYUR0QmEsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFHMEMsU0FBUztzQkFBekQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBJTWVudUl0ZW0sIElUZER5bmFtaWNNZW51TGlua0NsaWNrRXZlbnQgfSBmcm9tICcuLi9keW5hbWljLW1lbnUubWVudSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWR5bmFtaWMtbWVudS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1tZW51LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGREeW5hbWljTWVudUl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBpdGVtcyE6IElNZW51SXRlbVtdO1xuXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZDogRXZlbnRFbWl0dGVyPElUZER5bmFtaWNNZW51TGlua0NsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPElUZER5bmFtaWNNZW51TGlua0NsaWNrRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY2hpbGRNZW51JywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGNoaWxkTWVudSE6IE1hdE1lbnU7XG5cbiAgZW1pdENsaWNrZWQoZXZlbnQ6IElUZER5bmFtaWNNZW51TGlua0NsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1DbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8bWF0LW1lbnUgI2NoaWxkTWVudT1cIm1hdE1lbnVcIiBbb3ZlcmxhcFRyaWdnZXJdPVwiZmFsc2VcIj5cbiAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIGxldC1pbmRleD1cImluZGV4XCIgbmdGb3IgW25nRm9yT2ZdPVwiaXRlbXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbaWRdPVwiaXRlbS5pZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51LmNoaWxkTWVudVwiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAqbmdJZj1cIml0ZW0uc3ZnSWNvblwiXG4gICAgICAgICAgW2NsYXNzXT1cIml0ZW0uaWNvbkNsYXNzZXNcIlxuICAgICAgICAgIFtzdmdJY29uXT1cIml0ZW0uc3ZnSWNvblwiXG4gICAgICAgID48L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbY2xhc3NdPVwiaXRlbS5pY29uQ2xhc3Nlc1wiPnt7XG4gICAgICAgICAgaXRlbS5pY29uXG4gICAgICAgIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnRleHRcIj5cbiAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8dGQtZHluYW1pYy1tZW51LWl0ZW1cbiAgICAgICAgI21lbnVcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW0uY2hpbGRyZW5cIlxuICAgICAgPjwvdGQtZHluYW1pYy1tZW51LWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmNoaWxkcmVuIHx8IGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0ubGluayAmJiAhaXRlbS5hY3Rpb25cIj5cbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwiZ3JvdXAtZGl2aWRlclwiICpuZ0lmPVwiaW5kZXggPiAwXCI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWxhYmVsIHRleHQtc21cIj57eyBpdGVtLnRleHQgfX08L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubGluayB8fCBpdGVtLmFjdGlvblwiPlxuICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJwYWQtbm9uZVwiPlxuICAgICAgICAgIDx0ZC1keW5hbWljLW1lbnUtbGlua1xuICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAoaXRlbUNsaWNrZWQpPVwiZW1pdENsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdGQtZHluYW1pYy1tZW51LWxpbms+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuIl19
|
package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/material/menu";
|
4
|
+
import * as i2 from "@angular/material/icon";
|
5
|
+
import * as i3 from "@angular/common";
|
6
|
+
export class TdDynamicMenuLinkComponent {
|
7
|
+
constructor() {
|
8
|
+
this.itemClicked = new EventEmitter();
|
9
|
+
}
|
10
|
+
emitClicked() {
|
11
|
+
this.itemClicked.emit({ text: this.item.text, action: this.item.action });
|
12
|
+
}
|
13
|
+
}
|
14
|
+
TdDynamicMenuLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicMenuLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
15
|
+
TdDynamicMenuLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdDynamicMenuLinkComponent, selector: "td-dynamic-menu-link", inputs: { item: "item" }, outputs: { itemClicked: "itemClicked" }, ngImport: i0, template: "<a\n *ngIf=\"item.link\"\n class=\"new-tab\"\n mat-menu-item\n [id]=\"item.id\"\n [href]=\"item.link\"\n [target]=\"item.newTab ? '_blank' : '_self'\"\n (click)=\"emitClicked()\"\n>\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span>{{ item.text }}</span>\n <mat-icon *ngIf=\"item.newTab\" class=\"new-tab-icon\">launch</mat-icon>\n</a>\n<button\n *ngIf=\"item.action\"\n mat-menu-item\n [id]=\"item.id\"\n (click)=\"emitClicked()\"\n>\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span>{{ item.text }}</span>\n</button>\n", styles: [".new-tab{display:flex;justify-content:flex-start;align-items:center}.new-tab span{flex:1}.new-tab .new-tab-icon{margin:0 0 0 16px}\n"], components: [{ type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdDynamicMenuLinkComponent, decorators: [{
|
17
|
+
type: Component,
|
18
|
+
args: [{ selector: 'td-dynamic-menu-link', template: "<a\n *ngIf=\"item.link\"\n class=\"new-tab\"\n mat-menu-item\n [id]=\"item.id\"\n [href]=\"item.link\"\n [target]=\"item.newTab ? '_blank' : '_self'\"\n (click)=\"emitClicked()\"\n>\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span>{{ item.text }}</span>\n <mat-icon *ngIf=\"item.newTab\" class=\"new-tab-icon\">launch</mat-icon>\n</a>\n<button\n *ngIf=\"item.action\"\n mat-menu-item\n [id]=\"item.id\"\n (click)=\"emitClicked()\"\n>\n <mat-icon\n *ngIf=\"item.svgIcon\"\n [class]=\"item.iconClasses\"\n [svgIcon]=\"item.svgIcon\"\n ></mat-icon>\n <mat-icon *ngIf=\"item.icon\" [class]=\"item.iconClasses\">{{\n item.icon\n }}</mat-icon>\n <span>{{ item.text }}</span>\n</button>\n", styles: [".new-tab{display:flex;justify-content:flex-start;align-items:center}.new-tab span{flex:1}.new-tab .new-tab-icon{margin:0 0 0 16px}\n"] }]
|
19
|
+
}], propDecorators: { item: [{
|
20
|
+
type: Input
|
21
|
+
}], itemClicked: [{
|
22
|
+
type: Output
|
23
|
+
}] } });
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tZW51LWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2R5bmFtaWMtbWVudS9zcmMvZHluYW1pYy1tZW51LWl0ZW0vZHluYW1pYy1tZW51LWxpbmsvZHluYW1pYy1tZW51LWxpbmsuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2R5bmFtaWMtbWVudS9zcmMvZHluYW1pYy1tZW51LWl0ZW0vZHluYW1pYy1tZW51LWxpbmsvZHluYW1pYy1tZW51LWxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVFZLGdCQUFXLEdBQ25CLElBQUksWUFBWSxFQUFnQyxDQUFDO0tBS3BEO0lBSEMsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7dUhBUlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsK0hDWHZDLDQzQkFvQ0E7MkZEekJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLElBQUk7c0JBQVosS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElNZW51SXRlbSxcbiAgSVRkRHluYW1pY01lbnVMaW5rQ2xpY2tFdmVudCxcbn0gZnJvbSAnLi4vLi4vZHluYW1pYy1tZW51Lm1lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1keW5hbWljLW1lbnUtbGluaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLW1lbnUtbGluay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtbWVudS1saW5rLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY01lbnVMaW5rQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbSE6IElNZW51SXRlbTtcblxuICBAT3V0cHV0KCkgaXRlbUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxJVGREeW5hbWljTWVudUxpbmtDbGlja0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxJVGREeW5hbWljTWVudUxpbmtDbGlja0V2ZW50PigpO1xuXG4gIGVtaXRDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbUNsaWNrZWQuZW1pdCh7IHRleHQ6IHRoaXMuaXRlbS50ZXh0LCBhY3Rpb246IHRoaXMuaXRlbS5hY3Rpb24gfSk7XG4gIH1cbn1cbiIsIjxhXG4gICpuZ0lmPVwiaXRlbS5saW5rXCJcbiAgY2xhc3M9XCJuZXctdGFiXCJcbiAgbWF0LW1lbnUtaXRlbVxuICBbaWRdPVwiaXRlbS5pZFwiXG4gIFtocmVmXT1cIml0ZW0ubGlua1wiXG4gIFt0YXJnZXRdPVwiaXRlbS5uZXdUYWIgPyAnX2JsYW5rJyA6ICdfc2VsZidcIlxuICAoY2xpY2spPVwiZW1pdENsaWNrZWQoKVwiXG4+XG4gIDxtYXQtaWNvblxuICAgICpuZ0lmPVwiaXRlbS5zdmdJY29uXCJcbiAgICBbY2xhc3NdPVwiaXRlbS5pY29uQ2xhc3Nlc1wiXG4gICAgW3N2Z0ljb25dPVwiaXRlbS5zdmdJY29uXCJcbiAgPjwvbWF0LWljb24+XG4gIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0uaWNvblwiIFtjbGFzc109XCJpdGVtLmljb25DbGFzc2VzXCI+e3tcbiAgICBpdGVtLmljb25cbiAgfX08L21hdC1pY29uPlxuICA8c3Bhbj57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gIDxtYXQtaWNvbiAqbmdJZj1cIml0ZW0ubmV3VGFiXCIgY2xhc3M9XCJuZXctdGFiLWljb25cIj5sYXVuY2g8L21hdC1pY29uPlxuPC9hPlxuPGJ1dHRvblxuICAqbmdJZj1cIml0ZW0uYWN0aW9uXCJcbiAgbWF0LW1lbnUtaXRlbVxuICBbaWRdPVwiaXRlbS5pZFwiXG4gIChjbGljayk9XCJlbWl0Q2xpY2tlZCgpXCJcbj5cbiAgPG1hdC1pY29uXG4gICAgKm5nSWY9XCJpdGVtLnN2Z0ljb25cIlxuICAgIFtjbGFzc109XCJpdGVtLmljb25DbGFzc2VzXCJcbiAgICBbc3ZnSWNvbl09XCJpdGVtLnN2Z0ljb25cIlxuICA+PC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvbkNsYXNzZXNcIj57e1xuICAgIGl0ZW0uaWNvblxuICB9fTwvbWF0LWljb24+XG4gIDxzcGFuPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
|