@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 @@
|
|
1
|
+
{"version":3,"file":"covalent-core-file.mjs","sources":["../../../../libs/angular/file/src/directives/file-select.directive.ts","../../../../libs/angular/file/src/directives/file-drop.directive.ts","../../../../libs/angular/file/src/file-input/file-input.component.ts","../../../../libs/angular/file/src/file-input/file-input.component.html","../../../../libs/angular/file/src/file-upload/file-upload.component.ts","../../../../libs/angular/file/src/file-upload/file-upload.component.html","../../../../libs/angular/file/src/services/file.service.ts","../../../../libs/angular/file/src/file.module.ts","../../../../libs/angular/file/src/covalent-core-file.ts"],"sourcesContent":["import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding, Host, Optional } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[tdFileSelect]',\n})\nexport class TdFileSelectDirective {\n private _multiple = false;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be selected at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n /**\n * fileSelect?: function\n * Event emitted when a file or files are selected in host [HTMLInputElement].\n * Emits a [FileList | File] object.\n * Alternative to not use [(ngModel)].\n */\n @Output() fileSelect: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n constructor(@Optional() @Host() private model: NgModel) {}\n\n /**\n * Listens to 'change' host event to get [HTMLInputElement] files.\n * Emits the 'fileSelect' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Uses [(ngModel)] if declared, instead of emitting 'fileSelect' event.\n */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const fileInputEl: HTMLInputElement = event.target;\n const files: FileList = fileInputEl.files || new FileList();\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.model\n ? this.model.update.emit(value)\n : this.fileSelect.emit(value);\n }\n }\n }\n}\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport {\n HostListener,\n HostBinding,\n ElementRef,\n Renderer2,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport class TdFileDropBase {}\n\n@Directive({\n selector: '[tdFileDrop]',\n})\nexport class TdFileDropDirective {\n private _multiple = false;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be dropped at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n @Input() disabled? = false;\n\n /**\n * fileDrop?: function\n * Event emitted when a file or files are dropped in host element after being validated.\n * Emits a [FileList | File] object.\n */\n @Output() fileDrop: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n /**\n * Binds native 'disabled' attribute if [disabled] property is 'true'.\n */\n @HostBinding('attr.disabled')\n get disabledBinding(): string | undefined {\n return this.disabled ? '' : undefined;\n }\n\n constructor(private _renderer: Renderer2, private _element: ElementRef) {}\n\n /**\n * Listens to 'drop' host event to get validated transfer items.\n * Emits the 'fileDrop' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Stops event propagation and default action from browser for 'drop' event.\n */\n @HostListener('drop', ['$event'])\n onDrop(event: Event): void {\n if (!this.disabled) {\n const transfer: DataTransfer =\n (<DragEvent>event).dataTransfer ?? new DataTransfer();\n const files: FileList = transfer.files;\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.fileDrop.emit(value);\n }\n }\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n\n /**\n * Listens to 'dragover' host event to validate transfer items.\n * Checks if 'multiple' attr exists in host to allow multiple file drops.\n * Stops event propagation and default action from browser for 'dragover' event.\n */\n @HostListener('dragover', ['$event'])\n onDragOver(event: Event): void {\n const transfer: DataTransfer =\n (<DragEvent>event).dataTransfer || new DataTransfer();\n transfer.dropEffect = this._typeCheck(transfer.types);\n if (\n this.disabled ||\n (!this._multiple &&\n ((transfer.items && transfer.items.length > 1) ||\n (<any>transfer).mozItemCount > 1))\n ) {\n transfer.dropEffect = 'none';\n } else {\n transfer.dropEffect = 'copy';\n }\n this._stopEvent(event);\n }\n\n /**\n * Listens to 'dragenter' host event to add animation class 'drop-zone' which can be overriden in host.\n * Stops event propagation and default action from browser for 'dragenter' event.\n */\n @HostListener('dragenter', ['$event'])\n onDragEnter(event: Event): void {\n if (!this.disabled) {\n this._renderer.addClass(this._element.nativeElement, 'drop-zone');\n }\n this._stopEvent(event);\n }\n\n /**\n * Listens to 'dragleave' host event to remove animation class 'drop-zone'.\n * Stops event propagation and default action from browser for 'dragleave' event.\n */\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: Event): void {\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n\n /**\n * Validates if the transfer item types are 'Files'.\n */\n private _typeCheck(\n types: ReadonlyArray<string> | DOMStringList\n ): 'none' | 'copy' | 'link' | 'move' {\n let dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n if (\n types &&\n (((<any>types).contains && (<any>types).contains('Files')) ||\n ((<any>types).indexOf && (<any>types).indexOf('Files') !== -1))\n ) {\n dropEffect = 'copy';\n }\n\n return dropEffect;\n }\n\n private _stopEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Directive,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n ICanDisable,\n IControlValueAccessor,\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\n\n@Directive({\n selector: '[tdFileInputLabel]ng-template',\n})\nexport class TdFileInputLabelDirective extends TemplatePortalDirective {\n constructor(\n templateRef: TemplateRef<unknown>,\n viewContainerRef: ViewContainerRef\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdFileInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdFileInputMixinBase = mixinControlValueAccessor(\n mixinDisabled(TdFileInputBase)\n);\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileInputComponent),\n multi: true,\n },\n ],\n selector: 'td-file-input',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'value'],\n styleUrls: ['./file-input.component.scss'],\n templateUrl: './file-input.component.html',\n})\nexport class TdFileInputComponent\n extends _TdFileInputMixinBase\n implements IControlValueAccessor, ICanDisable\n{\n private _multiple = false;\n\n /** The native `<input type=\"file\"> element */\n @ViewChild('fileInput', { static: true }) _inputElement!: ElementRef;\n get inputElement(): HTMLInputElement {\n return this._inputElement.nativeElement;\n }\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n * Sets button color. Uses same color palette accepted as [MatButton].\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n /**\n * select?: function\n * Event emitted a file is selected\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n constructor(\n private _renderer: Renderer2,\n _changeDetectorRef: ChangeDetectorRef\n ) {\n super(_changeDetectorRef);\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(files: File | FileList): void {\n this.writeValue(files);\n this.selectFile.emit(files);\n }\n\n /**\n * Used to clear the selected files from the [TdFileInputComponent].\n */\n clear(): void {\n this.writeValue(undefined);\n this._renderer.setProperty(this.inputElement, 'value', '');\n }\n\n /** Method executed when the disabled value changes */\n override onDisabledChange(v: boolean): void {\n if (v) {\n this.clear();\n }\n }\n /**\n * Sets disable to the component. Implemented as part of ControlValueAccessor.\n */\n override setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<button\n mat-raised-button\n class=\"td-file-input\"\n type=\"button\"\n [color]=\"color\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (keyup.enter)=\"fileInput.click()\"\n (click)=\"fileInput.click()\"\n (fileDrop)=\"handleSelect($event)\"\n tdFileDrop\n>\n <ng-content></ng-content>\n</button>\n<input\n #fileInput\n class=\"td-file-input-hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n (fileSelect)=\"handleSelect($event)\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n tdFileSelect\n/>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ContentChild,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from '../file-input/file-input.component';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { noop } from 'rxjs';\n\nexport class TdFileUploadBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileUploadComponent),\n multi: true,\n },\n ],\n selector: 'td-file-upload',\n styleUrls: ['./file-upload.component.scss'],\n templateUrl: './file-upload.component.html',\n})\nexport class TdFileUploadComponent implements ControlValueAccessor {\n private _multiple = false;\n private _required = false;\n private _disabled = false;\n\n @ViewChild(TdFileInputComponent) fileInput?: TdFileInputComponent;\n\n @ContentChild(TdFileInputLabelDirective)\n inputLabel?: TdFileInputLabelDirective;\n\n /**\n * defaultColor?: 'accent' | 'primary' | 'warn'\n * Sets browse button color. Uses same color palette accepted as [MatButton] and defaults to 'primary'.\n */\n @Input() defaultColor: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * activeColor?: 'accent' | 'primary' | 'warn'\n * Sets upload button color. Uses same color palette accepted as [MatButton] and defaults to 'accent'.\n */\n @Input() activeColor: 'accent' | 'primary' | 'warn' = 'accent';\n\n /**\n * cancelColor?: 'accent' | 'primary' | 'warn'\n * Sets cancel button color. Uses same color palette accepted as [MatButton] and defaults to 'warn'.\n */\n @Input() cancelColor: 'accent' | 'primary' | 'warn' = 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileUploadComponent].\n */\n @Input()\n set multiple(multiple: boolean) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * required?: boolean\n * Forces at least one file upload.\n * Defaults to 'false'\n */\n @Input()\n set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n }\n get required(): boolean {\n return this._required;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.onDisabledChange(disabled);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() value?: unknown | undefined;\n\n /**\n * select?: function\n * Event emitted when a file is selected.\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n /**\n * upload?: function\n * Event emitted when upload button is clicked.\n * Emits a [File | FileList] object.\n */\n @Output() upload: EventEmitter<File | FileList | unknown> = new EventEmitter<\n File | FileList | unknown\n >();\n\n /**\n * cancel?: function\n * Event emitted when cancel button is clicked.\n */\n @Output() cancel: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n //\n }\n\n registerOnTouched(): void {\n //\n }\n\n /**\n * Method executed when upload button is clicked.\n */\n uploadPressed(): void {\n if (this.value) {\n this.upload.emit(this.value);\n }\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(value: File | FileList): void {\n this.value = value;\n this.selectFile.emit(value);\n }\n\n /**\n * Methods executed when cancel button is clicked.\n * Clears files.\n */\n _cancel(): void {\n this.value = undefined;\n this.cancel.emit();\n // check if the file input is rendered before clearing it\n if (this.fileInput) {\n this.fileInput.clear();\n }\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n if (v) {\n this._cancel();\n }\n }\n}\n","<td-file-input\n *ngIf=\"!value\"\n [(ngModel)]=\"value\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n [color]=\"defaultColor\"\n (selectFile)=\"(handleSelect)\"\n>\n <ng-template [cdkPortalOutlet]=\"inputLabel\" [ngIf]=\"true\"></ng-template>\n</td-file-input>\n<div *ngIf=\"value\">\n <button\n #fileUpload\n class=\"td-file-upload\"\n mat-raised-button\n type=\"button\"\n [color]=\"activeColor\"\n (keyup.delete)=\"_cancel()\"\n (keyup.backspace)=\"_cancel()\"\n (keyup.escape)=\"_cancel()\"\n (click)=\"uploadPressed()\"\n >\n <ng-content></ng-content>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-file-upload-cancel\"\n [color]=\"cancelColor\"\n (click)=\"_cancel()\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n","import { Injectable, Optional } from '@angular/core';\nimport {\n HttpClient,\n HttpRequest,\n HttpEvent,\n HttpEventType,\n HttpHeaders,\n HttpParams,\n} from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nexport interface IUploadExtras {\n headers?: { [name: string]: string | string[] };\n params?: { [param: string]: string | string[] };\n}\n\n@Injectable()\nexport class TdFileService {\n private _progressSubject: Subject<number> = new Subject<number>();\n private _progressObservable: Observable<number>;\n\n /**\n * Gets progress observable to keep track of the files being uploaded.\n * Needs to be supported by backend.\n */\n get progress(): Observable<number> {\n return this._progressObservable;\n }\n\n /**\n * Creates a new instance\n * @param _http the http client instance\n * @breaking-change 3.0.0 remove 'Optional' decorator once the legay upload method is removed\n */\n constructor(@Optional() private readonly _http: HttpClient) {\n this._progressObservable = this._progressSubject.asObservable();\n }\n\n /**\n * Uploads a file to a URL.\n */\n send(\n url: string,\n method: string,\n body: File | FormData,\n { headers, params }: IUploadExtras = {}\n ): Observable<HttpEvent<any>> {\n if (!this._http) {\n throw new Error(\n 'The HttpClient module needs to be imported at root module level'\n );\n }\n const req: HttpRequest<File | FormData> = new HttpRequest(\n method.toUpperCase(),\n url,\n body,\n {\n reportProgress: true,\n headers: new HttpHeaders(headers || {}),\n params: new HttpParams({ fromObject: params || {} }),\n }\n );\n return this._http\n .request(req)\n .pipe(tap((event: HttpEvent<any>) => this.handleEvent(event)));\n }\n\n private handleEvent<T = any>(event: HttpEvent<T>): void {\n switch (event.type) {\n case HttpEventType.Sent:\n this._progressSubject.next(0);\n break;\n case HttpEventType.UploadProgress:\n this._progressSubject.next(\n Math.round((100 * event.loaded) / (event.total ?? 0))\n );\n break;\n case HttpEventType.Response:\n this._progressSubject.next(100);\n break;\n default:\n break;\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdFileSelectDirective } from './directives/file-select.directive';\nimport { TdFileDropDirective } from './directives/file-drop.directive';\nimport { TdFileUploadComponent } from './file-upload/file-upload.component';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from './file-input/file-input.component';\nimport { TdFileService } from './services/file.service';\n\nconst TD_FILE: Type<any>[] = [\n TdFileSelectDirective,\n TdFileDropDirective,\n TdFileUploadComponent,\n TdFileInputComponent,\n TdFileInputLabelDirective,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatIconModule,\n MatButtonModule,\n PortalModule,\n ],\n declarations: [TD_FILE],\n exports: [TD_FILE],\n providers: [TdFileService],\n})\nexport class CovalentFileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,290 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { Component, ChangeDetectionStrategy, Optional, Input, NgModule } from '@angular/core';
|
3
|
+
import * as i3 from '@angular/common';
|
4
|
+
import { CommonModule } from '@angular/common';
|
5
|
+
import * as i4 from '@angular/material/tooltip';
|
6
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
7
|
+
import * as i2 from '@angular/material/icon';
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
9
|
+
import * as i1 from '@angular/cdk/bidi';
|
10
|
+
import { trigger, state, style, AUTO_STYLE, transition, group, query, animateChild, animate } from '@angular/animations';
|
11
|
+
|
12
|
+
/**
|
13
|
+
* const tdCollapseAnimation
|
14
|
+
*
|
15
|
+
* Parameter Options:
|
16
|
+
* * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.
|
17
|
+
* * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.
|
18
|
+
* * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.
|
19
|
+
* * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.
|
20
|
+
*
|
21
|
+
* Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.
|
22
|
+
*
|
23
|
+
* usage: [@tdCollapse]="{ value: true | false, params: { duration: 500 }}"
|
24
|
+
*/
|
25
|
+
const tdCollapseAnimation = trigger('tdCollapse', [
|
26
|
+
state('1', style({
|
27
|
+
height: '0',
|
28
|
+
overflow: 'hidden',
|
29
|
+
})),
|
30
|
+
state('0', style({
|
31
|
+
height: AUTO_STYLE,
|
32
|
+
overflow: AUTO_STYLE,
|
33
|
+
})),
|
34
|
+
transition('0 => 1', [
|
35
|
+
style({
|
36
|
+
overflow: 'hidden',
|
37
|
+
height: AUTO_STYLE,
|
38
|
+
}),
|
39
|
+
group([
|
40
|
+
query('@*', animateChild(), { optional: true }),
|
41
|
+
animate('{{ duration }}ms {{ delay }}ms {{ ease }}', style({
|
42
|
+
height: '0',
|
43
|
+
overflow: 'hidden',
|
44
|
+
})),
|
45
|
+
]),
|
46
|
+
], { params: { duration: 150, delay: '0', ease: 'ease-in' } }),
|
47
|
+
transition('1 => 0', [
|
48
|
+
style({
|
49
|
+
height: '0',
|
50
|
+
overflow: 'hidden',
|
51
|
+
}),
|
52
|
+
group([
|
53
|
+
query('@*', animateChild(), { optional: true }),
|
54
|
+
animate('{{ duration }}ms {{ delay }}ms {{ ease }}', style({
|
55
|
+
overflow: 'hidden',
|
56
|
+
height: AUTO_STYLE,
|
57
|
+
})),
|
58
|
+
]),
|
59
|
+
], { params: { duration: 150, delay: '0', ease: 'ease-out' } }),
|
60
|
+
]);
|
61
|
+
|
62
|
+
class TdJsonFormatterComponent {
|
63
|
+
constructor(_changeDetectorRef, _dir) {
|
64
|
+
this._changeDetectorRef = _changeDetectorRef;
|
65
|
+
this._dir = _dir;
|
66
|
+
this._open = false;
|
67
|
+
this._levelsOpen = 0;
|
68
|
+
}
|
69
|
+
/**
|
70
|
+
* levelsOpen?: number
|
71
|
+
* Levels opened by default when JS object is formatted and rendered.
|
72
|
+
*/
|
73
|
+
set levelsOpen(levelsOpen) {
|
74
|
+
if (!Number.isInteger(levelsOpen)) {
|
75
|
+
throw new Error('[levelsOpen] needs to be an integer.');
|
76
|
+
}
|
77
|
+
this._levelsOpen = levelsOpen;
|
78
|
+
this._open = levelsOpen > 0;
|
79
|
+
}
|
80
|
+
get levelsOpen() {
|
81
|
+
return this._levelsOpen;
|
82
|
+
}
|
83
|
+
get open() {
|
84
|
+
return this._open;
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* key?: string
|
88
|
+
* Tag to be displayed next to formatted object.
|
89
|
+
*/
|
90
|
+
set key(key) {
|
91
|
+
this._key = key;
|
92
|
+
}
|
93
|
+
get key() {
|
94
|
+
const elipsis = this._key && this._key.length > TdJsonFormatterComponent.KEY_MAX_LENGTH
|
95
|
+
? '…'
|
96
|
+
: '';
|
97
|
+
return this._key
|
98
|
+
? this._key.substring(0, TdJsonFormatterComponent.KEY_MAX_LENGTH) +
|
99
|
+
elipsis
|
100
|
+
: this._key ?? '';
|
101
|
+
}
|
102
|
+
/**
|
103
|
+
* data: any
|
104
|
+
* JS object to be formatted.
|
105
|
+
*/
|
106
|
+
set data(data) {
|
107
|
+
this._data = data;
|
108
|
+
this.parseChildren();
|
109
|
+
}
|
110
|
+
get data() {
|
111
|
+
return this._data;
|
112
|
+
}
|
113
|
+
get children() {
|
114
|
+
return this._children ?? [];
|
115
|
+
}
|
116
|
+
get isRTL() {
|
117
|
+
if (this._dir) {
|
118
|
+
return this._dir.dir === 'rtl';
|
119
|
+
}
|
120
|
+
return false;
|
121
|
+
}
|
122
|
+
/**
|
123
|
+
* Refreshes json-formatter and rerenders [data]
|
124
|
+
*/
|
125
|
+
refresh() {
|
126
|
+
this._changeDetectorRef.markForCheck();
|
127
|
+
}
|
128
|
+
/**
|
129
|
+
* Toggles collapse/expanded state of component.
|
130
|
+
*/
|
131
|
+
toggle() {
|
132
|
+
this._open = !this._open;
|
133
|
+
}
|
134
|
+
isObject() {
|
135
|
+
return this.getType(this._data) === 'object';
|
136
|
+
}
|
137
|
+
isArray() {
|
138
|
+
return Array.isArray(this._data);
|
139
|
+
}
|
140
|
+
hasChildren() {
|
141
|
+
return (this._children && this._children.length > 0) ?? false;
|
142
|
+
}
|
143
|
+
/**
|
144
|
+
* Gets parsed value depending on value type.
|
145
|
+
*/
|
146
|
+
getValue(value) {
|
147
|
+
const type = this.getType(value);
|
148
|
+
if (type === 'undefined' || type === 'null') {
|
149
|
+
return type;
|
150
|
+
}
|
151
|
+
else if (type === 'date') {
|
152
|
+
value = new Date(value).toString();
|
153
|
+
}
|
154
|
+
else if (type === 'string') {
|
155
|
+
value = '"' + value + '"';
|
156
|
+
}
|
157
|
+
else if (type === 'function') {
|
158
|
+
// Remove content of the function
|
159
|
+
return (value
|
160
|
+
.toString()
|
161
|
+
.replace(/[\r\n]/g, '')
|
162
|
+
.replace(/\{.*\}/, '') + '{…}');
|
163
|
+
}
|
164
|
+
else if (Array.isArray(value)) {
|
165
|
+
return this.getObjectName() + ' [' + value.length + ']';
|
166
|
+
}
|
167
|
+
return value;
|
168
|
+
}
|
169
|
+
/**
|
170
|
+
* Gets type of object.
|
171
|
+
* returns 'null' if object is null and 'date' if value is object and can be parsed to a date.
|
172
|
+
*/
|
173
|
+
getType(object) {
|
174
|
+
if (typeof object === 'object') {
|
175
|
+
if (!object) {
|
176
|
+
return 'null';
|
177
|
+
}
|
178
|
+
if (Array.isArray(object)) {
|
179
|
+
return 'object';
|
180
|
+
}
|
181
|
+
const date = new Date(object);
|
182
|
+
if (Object.prototype.toString.call(date) === '[object Date]' &&
|
183
|
+
!Number.isNaN(date.getTime())) {
|
184
|
+
return 'date';
|
185
|
+
}
|
186
|
+
}
|
187
|
+
return typeof object;
|
188
|
+
}
|
189
|
+
/**
|
190
|
+
* Generates string representation depending if its an object or function.
|
191
|
+
* see: http://stackoverflow.com/a/332429
|
192
|
+
*/
|
193
|
+
getObjectName() {
|
194
|
+
const object = this._data;
|
195
|
+
if (this.isObject() && !object.constructor) {
|
196
|
+
return 'Object';
|
197
|
+
}
|
198
|
+
const funcNameRegex = /function (.{1,})\(/;
|
199
|
+
const results = funcNameRegex.exec(object.constructor.toString());
|
200
|
+
if (results && results.length > 1) {
|
201
|
+
return results[1];
|
202
|
+
}
|
203
|
+
else {
|
204
|
+
return '';
|
205
|
+
}
|
206
|
+
}
|
207
|
+
/**
|
208
|
+
* Creates preview of nodes children to render in tooltip depending if its an array or an object.
|
209
|
+
*/
|
210
|
+
getPreview() {
|
211
|
+
let previewData;
|
212
|
+
let startChar = '{ ';
|
213
|
+
let endChar = ' }';
|
214
|
+
if (this.isArray()) {
|
215
|
+
const previewArray = Object.entries(this._data).slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];
|
216
|
+
previewData = previewArray.map((obj) => {
|
217
|
+
return this.getValue(obj);
|
218
|
+
});
|
219
|
+
startChar = '[';
|
220
|
+
endChar = ']';
|
221
|
+
}
|
222
|
+
else {
|
223
|
+
const previewKeys = this._children?.slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];
|
224
|
+
previewData = previewKeys.map((key) => {
|
225
|
+
return key + ': ' + this.getValue(this._data[key] ?? undefined);
|
226
|
+
});
|
227
|
+
}
|
228
|
+
const previewString = previewData.join(', ');
|
229
|
+
const ellipsis = previewData.length >= TdJsonFormatterComponent.PREVIEW_LIMIT ||
|
230
|
+
previewString.length > TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH
|
231
|
+
? '…'
|
232
|
+
: '';
|
233
|
+
return (startChar +
|
234
|
+
previewString.substring(0, TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH) +
|
235
|
+
ellipsis +
|
236
|
+
endChar);
|
237
|
+
}
|
238
|
+
parseChildren() {
|
239
|
+
if (this.isObject()) {
|
240
|
+
this._children = Object.keys(this._data ?? {});
|
241
|
+
}
|
242
|
+
}
|
243
|
+
}
|
244
|
+
/**
|
245
|
+
* Max length for property names. Any names bigger than this get trunctated.
|
246
|
+
*/
|
247
|
+
TdJsonFormatterComponent.KEY_MAX_LENGTH = 30;
|
248
|
+
/**
|
249
|
+
* Max length for preview string. Any names bigger than this get trunctated.
|
250
|
+
*/
|
251
|
+
TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH = 80;
|
252
|
+
/**
|
253
|
+
* Max tooltip preview elements.
|
254
|
+
*/
|
255
|
+
TdJsonFormatterComponent.PREVIEW_LIMIT = 5;
|
256
|
+
TdJsonFormatterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdJsonFormatterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Dir, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
257
|
+
TdJsonFormatterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdJsonFormatterComponent, selector: "td-json-formatter", inputs: { levelsOpen: "levelsOpen", key: "key", data: "data" }, ngImport: i0, template: "<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: TdJsonFormatterComponent, selector: "td-json-formatter", inputs: ["levelsOpen", "key", "data"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [tdCollapseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdJsonFormatterComponent, decorators: [{
|
259
|
+
type: Component,
|
260
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'td-json-formatter', animations: [tdCollapseAnimation], template: "<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\n"] }]
|
261
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Dir, decorators: [{
|
262
|
+
type: Optional
|
263
|
+
}] }]; }, propDecorators: { levelsOpen: [{
|
264
|
+
type: Input
|
265
|
+
}], key: [{
|
266
|
+
type: Input
|
267
|
+
}], data: [{
|
268
|
+
type: Input
|
269
|
+
}] } });
|
270
|
+
|
271
|
+
class CovalentJsonFormatterModule {
|
272
|
+
}
|
273
|
+
CovalentJsonFormatterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentJsonFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
274
|
+
CovalentJsonFormatterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentJsonFormatterModule, declarations: [TdJsonFormatterComponent], imports: [CommonModule, MatTooltipModule, MatIconModule], exports: [TdJsonFormatterComponent] });
|
275
|
+
CovalentJsonFormatterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentJsonFormatterModule, imports: [[CommonModule, MatTooltipModule, MatIconModule]] });
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentJsonFormatterModule, decorators: [{
|
277
|
+
type: NgModule,
|
278
|
+
args: [{
|
279
|
+
imports: [CommonModule, MatTooltipModule, MatIconModule],
|
280
|
+
declarations: [TdJsonFormatterComponent],
|
281
|
+
exports: [TdJsonFormatterComponent],
|
282
|
+
}]
|
283
|
+
}] });
|
284
|
+
|
285
|
+
/**
|
286
|
+
* Generated bundle index. Do not edit.
|
287
|
+
*/
|
288
|
+
|
289
|
+
export { CovalentJsonFormatterModule, TdJsonFormatterComponent };
|
290
|
+
//# sourceMappingURL=covalent-core-json-formatter.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"covalent-core-json-formatter.mjs","sources":["../../../../libs/angular/json-formatter/src/collapse.animation.ts","../../../../libs/angular/json-formatter/src/json-formatter.component.ts","../../../../libs/angular/json-formatter/src/json-formatter.component.html","../../../../libs/angular/json-formatter/src/json-formatter.module.ts","../../../../libs/angular/json-formatter/src/covalent-core-json-formatter.ts"],"sourcesContent":["import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata,\n AUTO_STYLE,\n query,\n animateChild,\n group,\n} from '@angular/animations';\n\nexport interface IAnimationOptions {\n anchor?: string;\n duration?: number;\n delay?: number;\n}\n\nexport interface ICollapseAnimation extends IAnimationOptions {\n easeOnClose?: string;\n easeOnOpen?: string;\n}\n\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation: AnimationTriggerMetadata = trigger(\n 'tdCollapse',\n [\n state(\n '1',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n state(\n '0',\n style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })\n ),\n transition(\n '0 => 1',\n [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-in' } }\n ),\n transition(\n '1 => 0',\n [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-out' } }\n ),\n ]\n);\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Optional,\n} from '@angular/core';\nimport { Dir } from '@angular/cdk/bidi';\nimport { tdCollapseAnimation } from './collapse.animation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'td-json-formatter',\n styleUrls: ['./json-formatter.component.scss'],\n templateUrl: './json-formatter.component.html',\n animations: [tdCollapseAnimation],\n})\nexport class TdJsonFormatterComponent {\n /**\n * Max length for property names. Any names bigger than this get trunctated.\n */\n private static KEY_MAX_LENGTH = 30;\n\n /**\n * Max length for preview string. Any names bigger than this get trunctated.\n */\n private static PREVIEW_STRING_MAX_LENGTH = 80;\n\n /**\n * Max tooltip preview elements.\n */\n private static PREVIEW_LIMIT = 5;\n\n private _key?: string;\n private _data!: Record<string, any>;\n private _children?: string[];\n private _open = false;\n private _levelsOpen = 0;\n\n /**\n * levelsOpen?: number\n * Levels opened by default when JS object is formatted and rendered.\n */\n @Input()\n set levelsOpen(levelsOpen: number) {\n if (!Number.isInteger(levelsOpen)) {\n throw new Error('[levelsOpen] needs to be an integer.');\n }\n this._levelsOpen = levelsOpen;\n this._open = levelsOpen > 0;\n }\n get levelsOpen(): number {\n return this._levelsOpen;\n }\n\n get open(): boolean {\n return this._open;\n }\n\n /**\n * key?: string\n * Tag to be displayed next to formatted object.\n */\n @Input()\n set key(key: string) {\n this._key = key;\n }\n get key(): string {\n const elipsis: string =\n this._key && this._key.length > TdJsonFormatterComponent.KEY_MAX_LENGTH\n ? '…'\n : '';\n return this._key\n ? this._key.substring(0, TdJsonFormatterComponent.KEY_MAX_LENGTH) +\n elipsis\n : this._key ?? '';\n }\n\n /**\n * data: any\n * JS object to be formatted.\n */\n @Input()\n set data(data: Record<string, any>) {\n this._data = data;\n this.parseChildren();\n }\n get data(): Record<string, any> {\n return this._data;\n }\n\n get children(): string[] {\n return this._children ?? [];\n }\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _dir: Dir\n ) {}\n\n /**\n * Refreshes json-formatter and rerenders [data]\n */\n refresh(): void {\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Toggles collapse/expanded state of component.\n */\n toggle(): void {\n this._open = !this._open;\n }\n\n isObject(): boolean {\n return this.getType(this._data) === 'object';\n }\n\n isArray(): boolean {\n return Array.isArray(this._data);\n }\n\n hasChildren(): boolean {\n return (this._children && this._children.length > 0) ?? false;\n }\n\n /**\n * Gets parsed value depending on value type.\n */\n getValue(value: any): string {\n const type: string = this.getType(value);\n if (type === 'undefined' || type === 'null') {\n return type;\n } else if (type === 'date') {\n value = new Date(value).toString();\n } else if (type === 'string') {\n value = '\"' + value + '\"';\n } else if (type === 'function') {\n // Remove content of the function\n return (\n value\n .toString()\n .replace(/[\\r\\n]/g, '')\n .replace(/\\{.*\\}/, '') + '{…}'\n );\n } else if (Array.isArray(value)) {\n return this.getObjectName() + ' [' + value.length + ']';\n }\n return value;\n }\n\n /**\n * Gets type of object.\n * returns 'null' if object is null and 'date' if value is object and can be parsed to a date.\n */\n getType(object: any): string {\n if (typeof object === 'object') {\n if (!object) {\n return 'null';\n }\n if (Array.isArray(object)) {\n return 'object';\n }\n const date: Date = new Date(object);\n if (\n Object.prototype.toString.call(date) === '[object Date]' &&\n !Number.isNaN(date.getTime())\n ) {\n return 'date';\n }\n }\n return typeof object;\n }\n\n /**\n * Generates string representation depending if its an object or function.\n * see: http://stackoverflow.com/a/332429\n */\n getObjectName(): string {\n const object: any = this._data;\n if (this.isObject() && !object.constructor) {\n return 'Object';\n }\n const funcNameRegex = /function (.{1,})\\(/;\n const results = funcNameRegex.exec(object.constructor.toString());\n if (results && results.length > 1) {\n return results[1];\n } else {\n return '';\n }\n }\n\n /**\n * Creates preview of nodes children to render in tooltip depending if its an array or an object.\n */\n getPreview(): string {\n let previewData: string[];\n let startChar = '{ ';\n let endChar = ' }';\n if (this.isArray()) {\n const previewArray: any[] =\n Object.entries(this._data).slice(\n 0,\n TdJsonFormatterComponent.PREVIEW_LIMIT\n ) ?? [];\n previewData = previewArray.map((obj: any) => {\n return this.getValue(obj);\n });\n startChar = '[';\n endChar = ']';\n } else {\n const previewKeys: string[] =\n this._children?.slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];\n previewData = previewKeys.map((key: string) => {\n return key + ': ' + this.getValue(this._data[key] ?? undefined);\n });\n }\n const previewString: string = previewData.join(', ');\n const ellipsis: string =\n previewData.length >= TdJsonFormatterComponent.PREVIEW_LIMIT ||\n previewString.length > TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ? '…'\n : '';\n return (\n startChar +\n previewString.substring(\n 0,\n TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ) +\n ellipsis +\n endChar\n );\n }\n\n private parseChildren(): void {\n if (this.isObject()) {\n this._children = Object.keys(this._data ?? {});\n }\n }\n}\n","<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TdJsonFormatterComponent } from './json-formatter.component';\n\n@NgModule({\n imports: [CommonModule, MatTooltipModule, MatIconModule],\n declarations: [TdJsonFormatterComponent],\n exports: [TdJsonFormatterComponent],\n})\nexport class CovalentJsonFormatterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|