@covalent/core 3.1.2 → 4.0.0-beta.2
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/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +3 -0
- package/breadcrumbs/breadcrumb/breadcrumb.component.scss +3 -0
- package/breadcrumbs/breadcrumbs.component.d.ts +3 -0
- package/breadcrumbs/breadcrumbs.component.scss +1 -0
- package/breadcrumbs/breadcrumbs.module.d.ts +8 -0
- package/breadcrumbs/covalent-core-breadcrumbs.d.ts +1 -0
- package/breadcrumbs/package.json +6 -7
- package/common/_common-theme.scss +2 -0
- package/common/common.module.d.ts +15 -0
- package/common/covalent-core-common.d.ts +1 -2
- 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 +31 -18
- 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 +3 -0
- package/common/platform.css +11828 -10433
- package/common/platform.css.map +1 -1
- package/common/services/icon.service.d.ts +3 -0
- package/common/services/router-path.service.d.ts +3 -0
- 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/_variables.scss +5 -5
- package/common/styles/colors/_colors-dark.scss +327 -0
- package/common/styles/colors/_colors-light.scss +748 -0
- package/common/styles/core/_button.scss +2 -1
- package/common/styles/core/_card.scss +27 -7
- 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 +2 -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 +1 -0
- package/dialogs/_dialog-theme.scss +1 -0
- package/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -0
- package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -0
- package/dialogs/covalent-core-dialogs.d.ts +1 -1
- package/dialogs/dialog.component.d.ts +9 -0
- package/dialogs/dialog.component.scss +5 -0
- package/dialogs/dialogs.module.d.ts +17 -0
- package/dialogs/package.json +6 -7
- package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +3 -0
- package/dialogs/prompt-dialog/prompt-dialog.component.scss +1 -0
- package/dialogs/public-api.d.ts +1 -0
- package/dialogs/services/dialog.service.d.ts +3 -0
- package/dialogs/window-dialog/window-dialog.component.d.ts +3 -0
- package/dynamic-menu/covalent-core-dynamic-menu.d.ts +1 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +3 -0
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.scss +1 -0
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +3 -0
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.scss +3 -1
- package/dynamic-menu/dynamic-menu.component.d.ts +3 -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 +1 -0
- package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +108 -0
- package/esm2020/breadcrumbs/breadcrumbs.component.mjs +139 -0
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +21 -0
- package/esm2020/breadcrumbs/covalent-core-breadcrumbs.mjs +5 -0
- package/esm2020/breadcrumbs/index.mjs +2 -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 +35 -0
- package/esm2020/common/animations/jello/jello.animation.mjs +38 -0
- package/esm2020/common/animations/pulse/pulse.animation.mjs +32 -0
- package/esm2020/common/animations/rotate/rotate.animation.mjs +25 -0
- package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +39 -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 +64 -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/{esm2015/common/functions/clipboard.js → esm2020/common/functions/clipboard.mjs} +3 -10
- 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/index.mjs +2 -0
- package/esm2020/common/pipes/bytes/bytes.pipe.mjs +32 -0
- package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +32 -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 +54 -0
- package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +68 -0
- package/esm2020/dialogs/covalent-core-dialogs.mjs +5 -0
- package/esm2020/dialogs/dialog.component.mjs +97 -0
- package/esm2020/dialogs/dialogs.module.mjs +86 -0
- package/esm2020/dialogs/index.mjs +2 -0
- package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +104 -0
- package/esm2020/dialogs/public-api.mjs +9 -0
- package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +199 -0
- package/esm2020/dialogs/services/dialog.service.mjs +168 -0
- package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +69 -0
- package/esm2020/dynamic-menu/covalent-core-dynamic-menu.mjs +5 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +147 -0
- package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +113 -0
- package/esm2020/dynamic-menu/dynamic-menu.component.mjs +111 -0
- package/esm2020/dynamic-menu/dynamic-menu.module.mjs +32 -0
- package/esm2020/dynamic-menu/index.mjs +2 -0
- package/esm2020/dynamic-menu/public_api.mjs +5 -0
- package/esm2020/file/covalent-core-file.mjs +5 -0
- package/esm2020/file/directives/file-drop.directive.mjs +148 -0
- package/esm2020/file/directives/file-select.directive.mjs +76 -0
- package/esm2020/file/file-input/file-input.component.mjs +137 -0
- package/esm2020/file/file-upload/file-upload.component.mjs +210 -0
- package/esm2020/file/file.module.mjs +43 -0
- package/esm2020/file/index.mjs +2 -0
- package/esm2020/file/public-api.mjs +7 -0
- package/esm2020/file/services/file.service.mjs +62 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/json-formatter/covalent-core-json-formatter.mjs +5 -0
- package/esm2020/json-formatter/index.mjs +2 -0
- package/esm2020/json-formatter/json-formatter.component.mjs +302 -0
- package/esm2020/json-formatter/json-formatter.module.mjs +21 -0
- package/esm2020/json-formatter/public-api.mjs +3 -0
- package/esm2020/layout/covalent-core-layout.mjs +5 -0
- package/esm2020/layout/index.mjs +2 -0
- package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +87 -0
- package/esm2020/layout/layout-footer/layout-footer.component.mjs +38 -0
- package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +122 -0
- package/esm2020/layout/layout-manage-list/layout-manage-list.directives.mjs +90 -0
- package/esm2020/layout/layout-nav/layout-nav.component.mjs +112 -0
- package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +215 -0
- package/esm2020/layout/layout-nav-list/layout-nav-list.directives.mjs +90 -0
- package/esm2020/layout/layout-toggle.class.mjs +95 -0
- package/esm2020/layout/layout.component.mjs +113 -0
- package/esm2020/layout/layout.directives.mjs +87 -0
- package/esm2020/layout/layout.module.mjs +118 -0
- package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +306 -0
- package/esm2020/layout/public-api.mjs +13 -0
- package/esm2020/menu/covalent-core-menu.mjs +5 -0
- package/esm2020/menu/index.mjs +2 -0
- package/esm2020/menu/menu.component.mjs +23 -0
- package/esm2020/menu/menu.module.mjs +22 -0
- package/esm2020/menu/public-api.mjs +3 -0
- package/esm2020/message/covalent-core-message.mjs +5 -0
- package/esm2020/message/index.mjs +2 -0
- package/esm2020/message/message.component.mjs +261 -0
- package/esm2020/message/message.module.mjs +21 -0
- package/esm2020/message/public-api.mjs +3 -0
- package/esm2020/search/covalent-core-search.mjs +5 -0
- package/esm2020/search/index.mjs +2 -0
- package/esm2020/search/public-api.mjs +4 -0
- package/esm2020/search/search-box/search-box.component.mjs +220 -0
- package/esm2020/search/search-input/search-input.component.mjs +240 -0
- package/esm2020/search/search.module.mjs +24 -0
- package/esm2020/side-sheet/covalent-core-side-sheet.mjs +5 -0
- package/esm2020/side-sheet/index.mjs +2 -0
- package/esm2020/side-sheet/public-api.mjs +6 -0
- package/esm2020/side-sheet/side-sheet-container.mjs +242 -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 +178 -0
- package/esm2020/side-sheet/side-sheet.mjs +208 -0
- package/esm2020/side-sheet/side-sheet.module.mjs +46 -0
- package/esm2020/user-profile/covalent-core-user-profile.mjs +5 -0
- package/esm2020/user-profile/index.mjs +2 -0
- package/esm2020/user-profile/public_api.mjs +4 -0
- package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +75 -0
- package/esm2020/user-profile/user-profile.component.mjs +41 -0
- package/esm2020/user-profile/user-profile.module.mjs +26 -0
- package/fesm2015/covalent-core-breadcrumbs.mjs +287 -0
- package/fesm2015/covalent-core-breadcrumbs.mjs.map +1 -0
- package/fesm2015/covalent-core-common.mjs +2251 -0
- package/fesm2015/covalent-core-common.mjs.map +1 -0
- package/fesm2015/covalent-core-dialogs.mjs +872 -0
- package/fesm2015/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs +480 -0
- package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -0
- package/fesm2015/covalent-core-file.mjs +698 -0
- package/fesm2015/covalent-core-file.mjs.map +1 -0
- package/fesm2015/covalent-core-json-formatter.mjs +353 -0
- package/fesm2015/covalent-core-json-formatter.mjs.map +1 -0
- package/fesm2015/covalent-core-layout.mjs +1577 -0
- package/fesm2015/covalent-core-layout.mjs.map +1 -0
- package/fesm2015/covalent-core-menu.mjs +55 -0
- package/fesm2015/covalent-core-menu.mjs.map +1 -0
- package/fesm2015/covalent-core-message.mjs +309 -0
- package/fesm2015/covalent-core-message.mjs.map +1 -0
- package/fesm2015/covalent-core-search.mjs +508 -0
- package/fesm2015/covalent-core-search.mjs.map +1 -0
- package/fesm2015/covalent-core-side-sheet.mjs +733 -0
- package/fesm2015/covalent-core-side-sheet.mjs.map +1 -0
- package/fesm2015/covalent-core-user-profile.mjs +162 -0
- package/fesm2015/covalent-core-user-profile.mjs.map +1 -0
- package/{chips/covalent-core-chips.d.ts → fesm2015/covalent-core.mjs} +1 -1
- package/fesm2015/covalent-core.mjs.map +1 -0
- package/fesm2020/covalent-core-breadcrumbs.mjs +268 -0
- package/{fesm2015/covalent-core-breadcrumbs.js.map → fesm2020/covalent-core-breadcrumbs.mjs.map} +1 -1
- package/{fesm2015/covalent-core-common.js → fesm2020/covalent-core-common.mjs} +213 -768
- package/fesm2020/covalent-core-common.mjs.map +1 -0
- package/fesm2020/covalent-core-dialogs.mjs +812 -0
- package/fesm2020/covalent-core-dialogs.mjs.map +1 -0
- package/fesm2020/covalent-core-dynamic-menu.mjs +393 -0
- package/fesm2020/covalent-core-dynamic-menu.mjs.map +1 -0
- package/fesm2020/covalent-core-file.mjs +651 -0
- package/fesm2020/covalent-core-file.mjs.map +1 -0
- package/fesm2020/covalent-core-json-formatter.mjs +326 -0
- package/fesm2020/covalent-core-json-formatter.mjs.map +1 -0
- package/fesm2020/covalent-core-layout.mjs +1414 -0
- package/fesm2020/covalent-core-layout.mjs.map +1 -0
- package/fesm2020/covalent-core-menu.mjs +49 -0
- package/fesm2020/covalent-core-menu.mjs.map +1 -0
- package/fesm2020/covalent-core-message.mjs +286 -0
- package/fesm2020/covalent-core-message.mjs.map +1 -0
- package/fesm2020/covalent-core-search.mjs +473 -0
- package/fesm2020/covalent-core-search.mjs.map +1 -0
- package/{fesm2015/covalent-core-side-sheet.js → fesm2020/covalent-core-side-sheet.mjs} +202 -646
- package/fesm2020/covalent-core-side-sheet.mjs.map +1 -0
- package/fesm2020/covalent-core-user-profile.mjs +141 -0
- package/fesm2020/covalent-core-user-profile.mjs.map +1 -0
- package/{data-table/covalent-core-data-table.d.ts → fesm2020/covalent-core.mjs} +1 -1
- package/fesm2020/covalent-core.mjs.map +1 -0
- package/file/_file-theme.scss +1 -0
- package/file/covalent-core-file.d.ts +1 -0
- package/file/directives/file-drop.directive.d.ts +3 -0
- package/file/directives/file-select.directive.d.ts +3 -0
- package/file/file-input/file-input.component.d.ts +5 -0
- package/file/file-input/file-input.component.scss +2 -0
- package/file/file-upload/file-upload.component.d.ts +3 -0
- package/file/file-upload/file-upload.component.scss +4 -0
- package/file/file.module.d.ts +13 -0
- package/file/package.json +6 -7
- package/file/services/file.service.d.ts +3 -0
- package/json-formatter/_json-formatter-theme.scss +10 -0
- package/json-formatter/covalent-core-json-formatter.d.ts +1 -0
- package/json-formatter/json-formatter.component.d.ts +3 -0
- package/json-formatter/json-formatter.component.scss +13 -0
- package/json-formatter/json-formatter.module.d.ts +8 -0
- package/json-formatter/package.json +6 -7
- package/layout/_layout-theme.scss +12 -0
- package/layout/covalent-core-layout.d.ts +1 -0
- package/layout/layout-card-over/layout-card-over.component.d.ts +3 -0
- package/layout/layout-card-over/layout-card-over.component.scss +3 -0
- package/layout/layout-footer/layout-footer.component.d.ts +3 -0
- package/layout/layout-manage-list/layout-manage-list.component.d.ts +3 -0
- package/layout/layout-manage-list/layout-manage-list.component.scss +9 -5
- package/layout/layout-manage-list/layout-manage-list.directives.d.ts +7 -0
- package/layout/layout-nav/layout-nav.component.d.ts +3 -0
- package/layout/layout-nav/layout-nav.component.scss +4 -0
- package/layout/layout-nav-list/layout-nav-list.component.d.ts +3 -0
- package/layout/layout-nav-list/layout-nav-list.component.scss +9 -4
- package/layout/layout-nav-list/layout-nav-list.directives.d.ts +7 -0
- package/layout/layout-toggle.class.d.ts +3 -0
- package/layout/layout.component.d.ts +3 -0
- package/layout/layout.component.scss +0 -4
- package/layout/layout.directives.d.ts +7 -0
- package/layout/layout.module.d.ts +23 -0
- package/layout/navigation-drawer/navigation-drawer.component.d.ts +7 -0
- package/layout/navigation-drawer/navigation-drawer.component.scss +8 -0
- package/layout/package.json +6 -7
- package/menu/covalent-core-menu.d.ts +1 -0
- package/menu/menu.component.d.ts +3 -0
- package/menu/menu.component.scss +9 -1
- package/menu/menu.module.d.ts +8 -0
- package/menu/package.json +6 -7
- package/message/_message-theme.scss +3 -0
- package/message/covalent-core-message.d.ts +1 -0
- package/message/message.component.d.ts +5 -0
- package/message/message.component.scss +3 -0
- package/message/message.module.d.ts +7 -0
- package/message/package.json +6 -7
- package/package.json +126 -15
- package/search/covalent-core-search.d.ts +1 -0
- package/search/package.json +6 -7
- package/search/search-box/search-box.component.d.ts +3 -0
- package/search/search-box/search-box.component.scss +5 -0
- package/search/search-input/search-input.component.d.ts +3 -0
- package/search/search-input/search-input.component.scss +12 -0
- package/search/search.module.d.ts +11 -0
- package/side-sheet/covalent-core-side-sheet.d.ts +1 -2
- package/side-sheet/package.json +6 -7
- package/side-sheet/side-sheet-container.d.ts +5 -0
- package/side-sheet/side-sheet.content-directives.d.ts +11 -0
- package/side-sheet/side-sheet.d.ts +5 -0
- package/side-sheet/side-sheet.module.d.ts +9 -0
- package/side-sheet/side-sheet.scss +1 -2
- package/theming/_all-theme.scss +0 -14
- package/theming/prebuilt/blue-grey-deep-orange.css +1714 -1581
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-grey-deep-orange.scss +15 -8
- package/theming/prebuilt/blue-orange.css +1713 -1580
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.scss +15 -8
- package/theming/prebuilt/indigo-pink.css +1714 -1581
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/indigo-pink.scss +15 -8
- package/theming/prebuilt/orange-light-blue.css +1713 -1580
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.scss +15 -8
- package/theming/prebuilt/teal-orange.css +1713 -1580
- package/theming/prebuilt/teal-orange.css.map +1 -1
- package/theming/prebuilt/teal-orange.scss +15 -8
- package/typography/_all-typography.scss +0 -10
- package/user-profile/covalent-core-user-profile.d.ts +1 -0
- package/user-profile/package.json +6 -7
- package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +3 -0
- package/user-profile/user-profile-menu/user-profile-menu.component.scss +3 -0
- package/user-profile/user-profile.component.d.ts +3 -0
- package/user-profile/user-profile.module.d.ts +12 -0
- package/breadcrumbs/covalent-core-breadcrumbs.metadata.json +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-chips.umd.js +0 -1507
- package/bundles/covalent-core-chips.umd.js.map +0 -1
- package/bundles/covalent-core-chips.umd.min.js +0 -16
- package/bundles/covalent-core-chips.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-data-table.umd.js +0 -2756
- package/bundles/covalent-core-data-table.umd.js.map +0 -1
- package/bundles/covalent-core-data-table.umd.min.js +0 -16
- package/bundles/covalent-core-data-table.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-expansion-panel.umd.js +0 -853
- package/bundles/covalent-core-expansion-panel.umd.js.map +0 -1
- package/bundles/covalent-core-expansion-panel.umd.min.js +0 -16
- package/bundles/covalent-core-expansion-panel.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-loading.umd.js +0 -1534
- package/bundles/covalent-core-loading.umd.js.map +0 -1
- package/bundles/covalent-core-loading.umd.min.js +0 -16
- package/bundles/covalent-core-loading.umd.min.js.map +0 -1
- package/bundles/covalent-core-media.umd.js +0 -749
- package/bundles/covalent-core-media.umd.js.map +0 -1
- package/bundles/covalent-core-media.umd.min.js +0 -16
- package/bundles/covalent-core-media.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-nav-links.umd.js +0 -197
- package/bundles/covalent-core-nav-links.umd.js.map +0 -1
- package/bundles/covalent-core-nav-links.umd.min.js +0 -2
- package/bundles/covalent-core-nav-links.umd.min.js.map +0 -1
- package/bundles/covalent-core-notifications.umd.js +0 -275
- package/bundles/covalent-core-notifications.umd.js.map +0 -1
- package/bundles/covalent-core-notifications.umd.min.js +0 -2
- package/bundles/covalent-core-notifications.umd.min.js.map +0 -1
- package/bundles/covalent-core-paging.umd.js +0 -491
- package/bundles/covalent-core-paging.umd.js.map +0 -1
- package/bundles/covalent-core-paging.umd.min.js +0 -2
- package/bundles/covalent-core-paging.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-sidesheet.umd.js +0 -145
- package/bundles/covalent-core-sidesheet.umd.js.map +0 -1
- package/bundles/covalent-core-sidesheet.umd.min.js +0 -2
- package/bundles/covalent-core-sidesheet.umd.min.js.map +0 -1
- package/bundles/covalent-core-steps.umd.js +0 -1756
- package/bundles/covalent-core-steps.umd.js.map +0 -1
- package/bundles/covalent-core-steps.umd.min.js +0 -16
- package/bundles/covalent-core-steps.umd.min.js.map +0 -1
- package/bundles/covalent-core-tab-select.umd.js +0 -732
- package/bundles/covalent-core-tab-select.umd.js.map +0 -1
- package/bundles/covalent-core-tab-select.umd.min.js +0 -16
- package/bundles/covalent-core-tab-select.umd.min.js.map +0 -1
- package/bundles/covalent-core-user-profile.umd.js +0 -124
- 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-virtual-scroll.umd.js +0 -785
- package/bundles/covalent-core-virtual-scroll.umd.js.map +0 -1
- package/bundles/covalent-core-virtual-scroll.umd.min.js +0 -16
- package/bundles/covalent-core-virtual-scroll.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/chips/README.md +0 -99
- package/chips/_chips-theme.scss +0 -87
- package/chips/chips.component.d.ts +0 -287
- package/chips/chips.component.scss +0 -147
- package/chips/chips.module.d.ts +0 -2
- package/chips/covalent-core-chips.metadata.json +0 -1
- package/chips/index.d.ts +0 -1
- package/chips/package.json +0 -11
- package/chips/public-api.d.ts +0 -2
- package/common/covalent-core-common.metadata.json +0 -1
- package/covalent-core.metadata.json +0 -1
- package/data-table/README.md +0 -134
- package/data-table/_data-table-theme.scss +0 -115
- package/data-table/covalent-core-data-table.metadata.json +0 -1
- package/data-table/data-table-cell/data-table-cell.component.d.ts +0 -22
- package/data-table/data-table-cell/data-table-cell.component.scss +0 -58
- package/data-table/data-table-column/data-table-column.component.d.ts +0 -63
- package/data-table/data-table-column/data-table-column.component.scss +0 -80
- package/data-table/data-table-row/data-table-row.component.d.ts +0 -20
- package/data-table/data-table-row/data-table-row.component.scss +0 -12
- package/data-table/data-table-table/data-table-table.component.d.ts +0 -6
- package/data-table/data-table-table/data-table-table.component.scss +0 -7
- package/data-table/data-table.component.d.ts +0 -356
- package/data-table/data-table.component.scss +0 -93
- package/data-table/data-table.module.d.ts +0 -2
- package/data-table/directives/data-table-template.directive.d.ts +0 -6
- package/data-table/index.d.ts +0 -1
- package/data-table/package.json +0 -11
- package/data-table/public-api.d.ts +0 -8
- package/data-table/services/data-table.service.d.ts +0 -31
- package/dialogs/covalent-core-dialogs.metadata.json +0 -1
- package/dynamic-menu/covalent-core-dynamic-menu.metadata.json +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/chips/chips.component.js +0 -1115
- package/esm2015/chips/chips.module.js +0 -23
- package/esm2015/chips/covalent-core-chips.js +0 -10
- package/esm2015/chips/index.js +0 -7
- package/esm2015/chips/public-api.js +0 -8
- 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/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/data-table/covalent-core-data-table.js +0 -10
- package/esm2015/data-table/data-table-cell/data-table-cell.component.js +0 -88
- package/esm2015/data-table/data-table-column/data-table-column.component.js +0 -218
- package/esm2015/data-table/data-table-row/data-table-row.component.js +0 -132
- package/esm2015/data-table/data-table-table/data-table-table.component.js +0 -43
- package/esm2015/data-table/data-table.component.js +0 -1640
- package/esm2015/data-table/data-table.module.js +0 -39
- package/esm2015/data-table/directives/data-table-template.directive.js +0 -32
- package/esm2015/data-table/index.js +0 -7
- package/esm2015/data-table/public-api.js +0 -14
- package/esm2015/data-table/services/data-table.service.js +0 -116
- 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/expansion-panel/covalent-core-expansion-panel.js +0 -10
- package/esm2015/expansion-panel/expansion-panel-group.component.js +0 -212
- package/esm2015/expansion-panel/expansion-panel.component.js +0 -272
- package/esm2015/expansion-panel/expansion-panel.module.js +0 -31
- package/esm2015/expansion-panel/index.js +0 -7
- package/esm2015/expansion-panel/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/loading/covalent-core-loading.js +0 -10
- package/esm2015/loading/directives/loading.directive.js +0 -231
- package/esm2015/loading/index.js +0 -7
- package/esm2015/loading/loading.component.js +0 -302
- package/esm2015/loading/loading.module.js +0 -30
- package/esm2015/loading/public-api.js +0 -11
- package/esm2015/loading/services/loading.factory.js +0 -297
- package/esm2015/loading/services/loading.service.js +0 -319
- package/esm2015/media/covalent-core-media.js +0 -10
- package/esm2015/media/directives/media-toggle.directive.js +0 -207
- package/esm2015/media/index.js +0 -7
- package/esm2015/media/media.module.js +0 -20
- package/esm2015/media/public-api.js +0 -9
- package/esm2015/media/services/media.service.js +0 -169
- 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/nav-links/covalent-core-nav-links.js +0 -10
- package/esm2015/nav-links/index.js +0 -7
- package/esm2015/nav-links/nav-links.component.js +0 -138
- package/esm2015/nav-links/nav-links.module.js +0 -37
- package/esm2015/nav-links/public-api.js +0 -8
- package/esm2015/notifications/covalent-core-notifications.js +0 -10
- package/esm2015/notifications/index.js +0 -7
- package/esm2015/notifications/notification-count.component.js +0 -191
- package/esm2015/notifications/notifications.module.js +0 -20
- package/esm2015/notifications/public-api.js +0 -8
- package/esm2015/paging/covalent-core-paging.js +0 -10
- package/esm2015/paging/index.js +0 -7
- package/esm2015/paging/paging-bar.component.js +0 -412
- package/esm2015/paging/paging.module.js +0 -20
- package/esm2015/paging/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/sidesheet/covalent-core-sidesheet.js +0 -10
- package/esm2015/sidesheet/index.js +0 -7
- package/esm2015/sidesheet/public-api.js +0 -8
- package/esm2015/sidesheet/sidesheet.component.js +0 -72
- package/esm2015/sidesheet/sidesheet.module.js +0 -27
- package/esm2015/steps/covalent-core-steps.js +0 -10
- package/esm2015/steps/index.js +0 -7
- package/esm2015/steps/nav/nav-step-link/nav-step-link.component.js +0 -144
- package/esm2015/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +0 -371
- package/esm2015/steps/nav/nav-steps-vertical/nav-steps-vertical.component.js +0 -130
- package/esm2015/steps/public-api.js +0 -14
- package/esm2015/steps/step-body/step-body.component.js +0 -83
- package/esm2015/steps/step-header/step-header.component.js +0 -79
- package/esm2015/steps/step.component.js +0 -312
- package/esm2015/steps/steps.component.js +0 -234
- package/esm2015/steps/steps.module.js +0 -44
- package/esm2015/tab-select/covalent-core-tab-select.js +0 -10
- package/esm2015/tab-select/index.js +0 -7
- package/esm2015/tab-select/public-api.js +0 -9
- package/esm2015/tab-select/tab-option.component.js +0 -82
- package/esm2015/tab-select/tab-select.component.js +0 -291
- package/esm2015/tab-select/tab-select.module.js +0 -31
- 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 -33
- package/esm2015/virtual-scroll/covalent-core-virtual-scroll.js +0 -10
- package/esm2015/virtual-scroll/index.js +0 -7
- package/esm2015/virtual-scroll/public-api.js +0 -9
- package/esm2015/virtual-scroll/virtual-scroll-container.component.js +0 -391
- package/esm2015/virtual-scroll/virtual-scroll-row.directive.js +0 -25
- package/esm2015/virtual-scroll/virtual-scroll.module.js +0 -21
- package/expansion-panel/README.md +0 -116
- package/expansion-panel/_expansion-panel-theme.scss +0 -80
- package/expansion-panel/covalent-core-expansion-panel.d.ts +0 -4
- package/expansion-panel/covalent-core-expansion-panel.metadata.json +0 -1
- package/expansion-panel/expansion-panel-group.component.d.ts +0 -31
- package/expansion-panel/expansion-panel-group.component.scss +0 -0
- package/expansion-panel/expansion-panel.component.d.ts +0 -82
- package/expansion-panel/expansion-panel.component.scss +0 -50
- package/expansion-panel/expansion-panel.module.d.ts +0 -2
- package/expansion-panel/index.d.ts +0 -1
- package/expansion-panel/package.json +0 -11
- package/expansion-panel/public-api.d.ts +0 -3
- package/fesm2015/covalent-core-breadcrumbs.js +0 -448
- package/fesm2015/covalent-core-chips.js +0 -1151
- package/fesm2015/covalent-core-chips.js.map +0 -1
- package/fesm2015/covalent-core-common.js.map +0 -1
- package/fesm2015/covalent-core-data-table.js +0 -2309
- package/fesm2015/covalent-core-data-table.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-expansion-panel.js +0 -528
- package/fesm2015/covalent-core-expansion-panel.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-loading.js +0 -1179
- package/fesm2015/covalent-core-loading.js.map +0 -1
- package/fesm2015/covalent-core-media.js +0 -411
- package/fesm2015/covalent-core-media.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-nav-links.js +0 -193
- package/fesm2015/covalent-core-nav-links.js.map +0 -1
- package/fesm2015/covalent-core-notifications.js +0 -228
- package/fesm2015/covalent-core-notifications.js.map +0 -1
- package/fesm2015/covalent-core-paging.js +0 -451
- package/fesm2015/covalent-core-paging.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.map +0 -1
- package/fesm2015/covalent-core-sidesheet.js +0 -118
- package/fesm2015/covalent-core-sidesheet.js.map +0 -1
- package/fesm2015/covalent-core-steps.js +0 -1384
- package/fesm2015/covalent-core-steps.js.map +0 -1
- package/fesm2015/covalent-core-tab-select.js +0 -416
- package/fesm2015/covalent-core-tab-select.js.map +0 -1
- package/fesm2015/covalent-core-user-profile.js +0 -111
- package/fesm2015/covalent-core-user-profile.js.map +0 -1
- package/fesm2015/covalent-core-virtual-scroll.js +0 -453
- package/fesm2015/covalent-core-virtual-scroll.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/json-formatter/covalent-core-json-formatter.metadata.json +0 -1
- package/layout/covalent-core-layout.metadata.json +0 -1
- package/loading/README.md +0 -180
- package/loading/_loading-theme.scss +0 -10
- package/loading/covalent-core-loading.d.ts +0 -4
- package/loading/covalent-core-loading.metadata.json +0 -1
- package/loading/directives/loading.directive.d.ts +0 -71
- package/loading/index.d.ts +0 -1
- package/loading/loading.component.d.ts +0 -87
- package/loading/loading.component.scss +0 -42
- package/loading/loading.module.d.ts +0 -2
- package/loading/package.json +0 -11
- package/loading/public-api.d.ts +0 -5
- package/loading/services/loading.factory.d.ts +0 -66
- package/loading/services/loading.service.d.ts +0 -118
- package/media/covalent-core-media.d.ts +0 -4
- package/media/covalent-core-media.metadata.json +0 -1
- package/media/directives/media-toggle.directive.d.ts +0 -42
- package/media/index.d.ts +0 -1
- package/media/media.module.d.ts +0 -2
- package/media/package.json +0 -11
- package/media/public-api.d.ts +0 -3
- package/media/services/media.service.d.ts +0 -31
- package/menu/covalent-core-menu.metadata.json +0 -1
- package/message/covalent-core-message.metadata.json +0 -1
- package/nav-links/README.md +0 -1
- package/nav-links/covalent-core-nav-links.d.ts +0 -4
- package/nav-links/covalent-core-nav-links.metadata.json +0 -1
- package/nav-links/index.d.ts +0 -1
- package/nav-links/nav-links.component.d.ts +0 -51
- package/nav-links/nav-links.component.scss +0 -15
- package/nav-links/nav-links.module.d.ts +0 -2
- package/nav-links/package.json +0 -11
- package/nav-links/public-api.d.ts +0 -2
- package/notifications/README.md +0 -69
- package/notifications/_notification-count-theme.scss +0 -27
- package/notifications/covalent-core-notifications.d.ts +0 -4
- package/notifications/covalent-core-notifications.metadata.json +0 -1
- package/notifications/index.d.ts +0 -1
- package/notifications/notification-count.component.d.ts +0 -74
- package/notifications/notification-count.component.scss +0 -90
- package/notifications/notifications.module.d.ts +0 -2
- package/notifications/package.json +0 -11
- package/notifications/public-api.d.ts +0 -2
- package/paging/README.md +0 -141
- package/paging/_paging-bar-theme.scss +0 -26
- package/paging/covalent-core-paging.d.ts +0 -4
- package/paging/covalent-core-paging.metadata.json +0 -1
- package/paging/index.d.ts +0 -1
- package/paging/package.json +0 -11
- package/paging/paging-bar.component.d.ts +0 -115
- package/paging/paging-bar.component.scss +0 -23
- package/paging/paging.module.d.ts +0 -2
- package/paging/public-api.d.ts +0 -2
- package/schematics/collection.json +0 -11
- package/schematics/components.js +0 -124
- package/schematics/components.js.map +0 -1
- package/schematics/migration.json +0 -10
- 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/side-sheet/covalent-core-side-sheet.metadata.json +0 -1
- package/sidesheet/README.md +0 -68
- package/sidesheet/covalent-core-sidesheet.d.ts +0 -4
- package/sidesheet/covalent-core-sidesheet.metadata.json +0 -1
- package/sidesheet/index.d.ts +0 -1
- package/sidesheet/package.json +0 -11
- package/sidesheet/public-api.d.ts +0 -2
- package/sidesheet/sidesheet.component.d.ts +0 -13
- package/sidesheet/sidesheet.component.scss +0 -101
- package/sidesheet/sidesheet.module.d.ts +0 -2
- package/steps/README.md +0 -159
- package/steps/_steps-theme.scss +0 -108
- package/steps/covalent-core-steps.d.ts +0 -4
- package/steps/covalent-core-steps.metadata.json +0 -1
- package/steps/index.d.ts +0 -1
- package/steps/nav/README.md +0 -90
- package/steps/nav/nav-step-link/nav-step-link.component.d.ts +0 -42
- package/steps/nav/nav-step-link/nav-step-link.component.scss +0 -17
- package/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.d.ts +0 -79
- package/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.scss +0 -83
- package/steps/nav/nav-steps-vertical/nav-steps-vertical.component.d.ts +0 -18
- package/steps/nav/nav-steps-vertical/nav-steps-vertical.component.scss +0 -18
- package/steps/package.json +0 -11
- package/steps/public-api.d.ts +0 -8
- package/steps/step-body/step-body.component.d.ts +0 -25
- package/steps/step-body/step-body.component.scss +0 -29
- package/steps/step-header/step-header.component.d.ts +0 -35
- package/steps/step-header/step-header.component.scss +0 -90
- package/steps/step.component.d.ts +0 -97
- package/steps/steps.component.d.ts +0 -60
- package/steps/steps.component.scss +0 -55
- package/steps/steps.module.d.ts +0 -2
- package/tab-select/README.md +0 -93
- package/tab-select/covalent-core-tab-select.d.ts +0 -4
- package/tab-select/covalent-core-tab-select.metadata.json +0 -1
- package/tab-select/index.d.ts +0 -1
- package/tab-select/package.json +0 -11
- package/tab-select/public-api.d.ts +0 -3
- package/tab-select/tab-option.component.d.ts +0 -20
- package/tab-select/tab-option.component.scss +0 -0
- package/tab-select/tab-select.component.d.ts +0 -62
- package/tab-select/tab-select.component.scss +0 -3
- package/tab-select/tab-select.module.d.ts +0 -2
- package/user-profile/covalent-core-user-profile.metadata.json +0 -1
- package/virtual-scroll/README.md +0 -68
- package/virtual-scroll/covalent-core-virtual-scroll.d.ts +0 -4
- package/virtual-scroll/covalent-core-virtual-scroll.metadata.json +0 -1
- package/virtual-scroll/index.d.ts +0 -1
- package/virtual-scroll/package.json +0 -11
- package/virtual-scroll/public-api.d.ts +0 -3
- package/virtual-scroll/virtual-scroll-container.component.d.ts +0 -73
- package/virtual-scroll/virtual-scroll-container.component.scss +0 -7
- package/virtual-scroll/virtual-scroll-row.directive.d.ts +0 -5
- package/virtual-scroll/virtual-scroll.module.d.ts +0 -2
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Directive } from '@angular/core';
|
2
|
+
import { HostListener, Host, Optional } from '@angular/core';
|
3
|
+
import { NgModel } from '@angular/forms';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/forms";
|
6
|
+
export class TdAutoTrimDirective {
|
7
|
+
constructor(_model) {
|
8
|
+
this._model = _model;
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Listens to host's (blur) event and trims value.
|
12
|
+
*/
|
13
|
+
onBlur(event) {
|
14
|
+
if (this._model && this._model.value && typeof this._model.value === 'string') {
|
15
|
+
this._model.update.emit(this._model.value.trim());
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
/** @nocollapse */ /** @nocollapse */ TdAutoTrimDirective.ɵfac = function TdAutoTrimDirective_Factory(t) { return new (t || TdAutoTrimDirective)(i0.ɵɵdirectiveInject(i1.NgModel, 9)); };
|
20
|
+
/** @nocollapse */ /** @nocollapse */ TdAutoTrimDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TdAutoTrimDirective, selectors: [["", "tdAutoTrim", ""]], hostBindings: function TdAutoTrimDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
21
|
+
i0.ɵɵlistener("blur", function TdAutoTrimDirective_blur_HostBindingHandler($event) { return ctx.onBlur($event); });
|
22
|
+
} } });
|
23
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdAutoTrimDirective, [{
|
24
|
+
type: Directive,
|
25
|
+
args: [{
|
26
|
+
selector: '[tdAutoTrim]',
|
27
|
+
}]
|
28
|
+
}], function () { return [{ type: i1.NgModel, decorators: [{
|
29
|
+
type: Optional
|
30
|
+
}, {
|
31
|
+
type: Host
|
32
|
+
}] }]; }, { onBlur: [{
|
33
|
+
type: HostListener,
|
34
|
+
args: ['blur', ['$event']]
|
35
|
+
}] }); })();
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by10cmltLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9mb3Jtcy9hdXRvLXRyaW0vYXV0by10cmltLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQXdDLE1BQWU7UUFBZixXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztJQUUzRDs7T0FFRztJQUVILE1BQU0sQ0FBQyxLQUFZO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7OzRIQVhVLG1CQUFtQjt3SEFBbkIsbUJBQW1CO29HQUFuQixrQkFBYzs7dUZBQWQsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsY0FBYzthQUN6Qjs7c0JBRWMsUUFBUTs7c0JBQUksSUFBSTt3QkFNN0IsTUFBTTtrQkFETCxZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG9zdExpc3RlbmVyLCBIb3N0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkQXV0b1RyaW1dJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRBdXRvVHJpbURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfbW9kZWw6IE5nTW9kZWwpIHt9XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gaG9zdCdzIChibHVyKSBldmVudCBhbmQgdHJpbXMgdmFsdWUuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgb25CbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9tb2RlbCAmJiB0aGlzLl9tb2RlbC52YWx1ZSAmJiB0eXBlb2YgdGhpcy5fbW9kZWwudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9tb2RlbC51cGRhdGUuZW1pdCh0aGlzLl9tb2RlbC52YWx1ZS50cmltKCkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { Validators } from '@angular/forms';
|
2
|
+
export class CovalentValidators {
|
3
|
+
static min(minValue) {
|
4
|
+
// tslint:disable-next-line:prefer-immediate-return
|
5
|
+
const func = (c) => {
|
6
|
+
if (!!Validators.required(c) || (!minValue && minValue !== 0)) {
|
7
|
+
return undefined;
|
8
|
+
}
|
9
|
+
const v = c.value;
|
10
|
+
return v < minValue ? { min: { minValue, actualValue: v } } : undefined;
|
11
|
+
};
|
12
|
+
return func;
|
13
|
+
}
|
14
|
+
static max(maxValue) {
|
15
|
+
// tslint:disable-next-line:prefer-immediate-return
|
16
|
+
const func = (c) => {
|
17
|
+
if (!!Validators.required(c) || (!maxValue && maxValue !== 0)) {
|
18
|
+
return undefined;
|
19
|
+
}
|
20
|
+
const v = c.value;
|
21
|
+
return v > maxValue ? { max: { maxValue, actualValue: v } } : undefined;
|
22
|
+
};
|
23
|
+
return func;
|
24
|
+
}
|
25
|
+
static numberRequired(c) {
|
26
|
+
return Number.isNaN(c.value) ? { required: true } : undefined;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9mb3Jtcy92YWxpZGF0b3JzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBYTtRQUN0QixtREFBbUQ7UUFDbkQsTUFBTSxJQUFJLEdBQWdCLENBQUMsQ0FBa0IsRUFBMEIsRUFBRTtZQUN2RSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3RCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sQ0FBQyxHQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFFLENBQUMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBYTtRQUN0QixtREFBbUQ7UUFDbkQsTUFBTSxJQUFJLEdBQWdCLENBQUMsQ0FBa0IsRUFBMEIsRUFBRTtZQUN2RSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3RCxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sQ0FBQyxHQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFFLENBQUMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBa0I7UUFDdEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgQ292YWxlbnRWYWxpZGF0b3JzIHtcbiAgc3RhdGljIG1pbihtaW5WYWx1ZTogYW55KTogVmFsaWRhdG9yRm4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItaW1tZWRpYXRlLXJldHVyblxuICAgIGNvbnN0IGZ1bmM6IFZhbGlkYXRvckZuID0gKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKCEhVmFsaWRhdG9ycy5yZXF1aXJlZChjKSB8fCAoIW1pblZhbHVlICYmIG1pblZhbHVlICE9PSAwKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgdjogbnVtYmVyID0gYy52YWx1ZTtcbiAgICAgIHJldHVybiB2IDwgbWluVmFsdWUgPyB7IG1pbjogeyBtaW5WYWx1ZSwgYWN0dWFsVmFsdWU6IHYgfSB9IDogdW5kZWZpbmVkO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH1cblxuICBzdGF0aWMgbWF4KG1heFZhbHVlOiBhbnkpOiBWYWxpZGF0b3JGbiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1pbW1lZGlhdGUtcmV0dXJuXG4gICAgY29uc3QgZnVuYzogVmFsaWRhdG9yRm4gPSAoYzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoISFWYWxpZGF0b3JzLnJlcXVpcmVkKGMpIHx8ICghbWF4VmFsdWUgJiYgbWF4VmFsdWUgIT09IDApKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCB2OiBudW1iZXIgPSBjLnZhbHVlO1xuICAgICAgcmV0dXJuIHYgPiBtYXhWYWx1ZSA/IHsgbWF4OiB7IG1heFZhbHVlLCBhY3R1YWxWYWx1ZTogdiB9IH0gOiB1bmRlZmluZWQ7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuXG4gIHN0YXRpYyBudW1iZXJSZXF1aXJlZChjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGMudmFsdWUpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
@@ -1,30 +1,23 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview added by tsickle
|
3
|
-
* Generated from: functions/clipboard.ts
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
-
*/
|
6
1
|
/**
|
7
2
|
* Assign a text value to the system clipboard. Note: Due to browser
|
8
3
|
* security restrictions, the copy will only succeed if this method
|
9
4
|
* is invoked as a result of a user action (eg. user button click).
|
10
5
|
*
|
11
|
-
* @param
|
12
|
-
* @
|
6
|
+
* @param value text value to be assigned to clipboard.
|
7
|
+
* @returns boolean indicating success/failure of copy operation.
|
13
8
|
*/
|
14
9
|
export function copyToClipboard(value) {
|
15
10
|
// Create a temporary textarea element and append to DOM
|
16
|
-
/** @type {?} */
|
17
11
|
const fakeTextArea = document.createElement('textarea');
|
18
12
|
document.body.appendChild(fakeTextArea);
|
19
13
|
// Assign value to be copied to clipboard
|
20
14
|
fakeTextArea.value = value;
|
21
15
|
fakeTextArea.select();
|
22
16
|
// Copy to clipboard
|
23
|
-
/** @type {?} */
|
24
17
|
const success = document.execCommand('copy');
|
25
18
|
// Remove temporary textarea
|
26
19
|
document.body.removeChild(fakeTextArea);
|
27
20
|
// Return boolean indicating if exec command succeeded
|
28
21
|
return success;
|
29
22
|
}
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvY29tbW9uL2Z1bmN0aW9ucy9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYTtJQUMzQyx3REFBd0Q7SUFDeEQsTUFBTSxZQUFZLEdBQXdCLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0UsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFeEMseUNBQXlDO0lBQ3pDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzNCLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUV0QixvQkFBb0I7SUFDcEIsTUFBTSxPQUFPLEdBQVksUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RCw0QkFBNEI7SUFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFeEMsc0RBQXNEO0lBQ3RELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFzc2lnbiBhIHRleHQgdmFsdWUgdG8gdGhlIHN5c3RlbSBjbGlwYm9hcmQuIE5vdGU6IER1ZSB0byBicm93c2VyXG4gKiBzZWN1cml0eSByZXN0cmljdGlvbnMsIHRoZSBjb3B5IHdpbGwgb25seSBzdWNjZWVkIGlmIHRoaXMgbWV0aG9kXG4gKiBpcyBpbnZva2VkIGFzIGEgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24gKGVnLiB1c2VyIGJ1dHRvbiBjbGljaykuXG4gKlxuICogQHBhcmFtIHZhbHVlIHRleHQgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gY2xpcGJvYXJkLlxuICogQHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIHN1Y2Nlc3MvZmFpbHVyZSBvZiBjb3B5IG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb0NsaXBib2FyZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIENyZWF0ZSBhIHRlbXBvcmFyeSB0ZXh0YXJlYSBlbGVtZW50IGFuZCBhcHBlbmQgdG8gRE9NXG4gIGNvbnN0IGZha2VUZXh0QXJlYTogSFRNTFRleHRBcmVhRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZVRleHRBcmVhKTtcblxuICAvLyBBc3NpZ24gdmFsdWUgdG8gYmUgY29waWVkIHRvIGNsaXBib2FyZFxuICBmYWtlVGV4dEFyZWEudmFsdWUgPSB2YWx1ZTtcbiAgZmFrZVRleHRBcmVhLnNlbGVjdCgpO1xuXG4gIC8vIENvcHkgdG8gY2xpcGJvYXJkXG4gIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuXG4gIC8vIFJlbW92ZSB0ZW1wb3JhcnkgdGV4dGFyZWFcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmYWtlVGV4dEFyZWEpO1xuXG4gIC8vIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgaWYgZXhlYyBjb21tYW5kIHN1Y2NlZWRlZFxuICByZXR1cm4gc3VjY2Vzcztcbn1cbiJdfQ==
|
@@ -0,0 +1,84 @@
|
|
1
|
+
/**
|
2
|
+
* Conversion function that takes an array of objects and converts
|
3
|
+
* them to CSV format. Custom key and line separators can be specified.
|
4
|
+
*
|
5
|
+
* @param objects list of strings in JSON format or actual objects
|
6
|
+
* @param keySeparator optional parameter to specify custom value separator
|
7
|
+
* @param lineSeparator optional parameter to specify custom end of line separator
|
8
|
+
* @returns CSV formatted string
|
9
|
+
*/
|
10
|
+
export function convertObjectsToCSV(objects, keySeparator = ',', lineSeparator = '\r\n') {
|
11
|
+
if (!objects) {
|
12
|
+
return '';
|
13
|
+
}
|
14
|
+
let outputString = '';
|
15
|
+
// Iterate through array, creating one output line per object
|
16
|
+
objects.forEach((value, key) => {
|
17
|
+
let line = '';
|
18
|
+
for (const index of Object.keys(objects[key])) {
|
19
|
+
if (line !== '') {
|
20
|
+
line += keySeparator;
|
21
|
+
}
|
22
|
+
if (objects[key][index] === null || objects[key][index] === undefined) {
|
23
|
+
objects[key][index] = '';
|
24
|
+
}
|
25
|
+
line += objects[key][index];
|
26
|
+
}
|
27
|
+
outputString += `${line}${lineSeparator}`;
|
28
|
+
});
|
29
|
+
// Append header row identifying keys into output
|
30
|
+
if (objects[0]) {
|
31
|
+
const headers = Object.keys(objects[0]).join(keySeparator);
|
32
|
+
outputString = `${headers}${lineSeparator}${outputString}`;
|
33
|
+
}
|
34
|
+
return outputString;
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Conversion function that takes a CSV representation
|
38
|
+
* of objects and converts them to JSON.
|
39
|
+
* The first row in the input must be the object keys.
|
40
|
+
* Custom key separator and line separator can be specified.
|
41
|
+
* Indentation size for output JSON can be specified.
|
42
|
+
*
|
43
|
+
* @param csv list of strings in JSON format or actual objects
|
44
|
+
* @param keySeparator optional parameter to specify custom value separator
|
45
|
+
* @param lineSeparator optional parameter to specify custom end of line separator
|
46
|
+
* @param indent optional parameter indicating space indentation for pretty output. Default is 2.
|
47
|
+
* @returns JSON formatted string
|
48
|
+
*/
|
49
|
+
export function convertCSVToJSON(csv, keySeparator = ',', lineSeparator = '\r\n', indent = 2) {
|
50
|
+
if (!csv) {
|
51
|
+
return '';
|
52
|
+
}
|
53
|
+
const csvArray = csv.split(lineSeparator);
|
54
|
+
// Input CSV must have a minimum of two rows
|
55
|
+
if (csvArray.length < 2) {
|
56
|
+
return '';
|
57
|
+
}
|
58
|
+
const newObjects = [];
|
59
|
+
// Extract object keys from header row
|
60
|
+
const keys = csvArray[0].split(keySeparator);
|
61
|
+
// Iterate through array, creating one output line per object
|
62
|
+
for (let i = 1; i < csvArray.length; i++) {
|
63
|
+
const newObject = {};
|
64
|
+
const values = csvArray[i].split(keySeparator);
|
65
|
+
if (values.length !== keys.length) {
|
66
|
+
continue;
|
67
|
+
}
|
68
|
+
for (let j = 0; j < keys.length; j++) {
|
69
|
+
newObject[keys[j]] = values[j];
|
70
|
+
}
|
71
|
+
newObjects.push(newObject);
|
72
|
+
}
|
73
|
+
return formatJSON(newObjects, indent);
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Convert object to JSON using stringify. Indentation size for output JSON can be specified.
|
77
|
+
*
|
78
|
+
* @param json object to be converted
|
79
|
+
* @param indent optional parameter indicating space indentation for pretty output. Default is 2.
|
80
|
+
*/
|
81
|
+
export function formatJSON(json, indent = 2) {
|
82
|
+
return JSON.stringify(json, undefined, indent);
|
83
|
+
}
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9mdW5jdGlvbnMvY29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsT0FBYyxFQUNkLGVBQXVCLEdBQUcsRUFDMUIsZ0JBQXdCLE1BQU07SUFFOUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxJQUFJLFlBQVksR0FBVyxFQUFFLENBQUM7SUFFOUIsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDN0MsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxJQUFJLFlBQVksQ0FBQzthQUN0QjtZQUNELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELFlBQVksSUFBSSxHQUFHLElBQUksR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILGlEQUFpRDtJQUNqRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNkLE1BQU0sT0FBTyxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25FLFlBQVksR0FBRyxHQUFHLE9BQU8sR0FBRyxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUM7S0FDNUQ7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixHQUFXLEVBQ1gsZUFBdUIsR0FBRyxFQUMxQixnQkFBd0IsTUFBTSxFQUM5QixTQUFpQixDQUFDO0lBRWxCLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxRQUFRLEdBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCw0Q0FBNEM7SUFDNUMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsTUFBTSxVQUFVLEdBQVUsRUFBRSxDQUFDO0lBRTdCLHNDQUFzQztJQUN0QyxNQUFNLElBQUksR0FBYSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELDZEQUE2RDtJQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxNQUFNLFNBQVMsR0FBUSxFQUFFLENBQUM7UUFFMUIsTUFBTSxNQUFNLEdBQWEsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxTQUFTO1NBQ1Y7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUM1QjtJQUVELE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVksRUFBRSxTQUFpQixDQUFDO0lBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnNpb24gZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCBjb252ZXJ0c1xuICogdGhlbSB0byBDU1YgZm9ybWF0LiBDdXN0b20ga2V5IGFuZCBsaW5lIHNlcGFyYXRvcnMgY2FuIGJlIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gb2JqZWN0cyBsaXN0IG9mIHN0cmluZ3MgaW4gSlNPTiBmb3JtYXQgb3IgYWN0dWFsIG9iamVjdHNcbiAqIEBwYXJhbSBrZXlTZXBhcmF0b3Igb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNwZWNpZnkgY3VzdG9tIHZhbHVlIHNlcGFyYXRvclxuICogQHBhcmFtIGxpbmVTZXBhcmF0b3Igb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNwZWNpZnkgY3VzdG9tIGVuZCBvZiBsaW5lIHNlcGFyYXRvclxuICogQHJldHVybnMgQ1NWIGZvcm1hdHRlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRPYmplY3RzVG9DU1YoXG4gIG9iamVjdHM6IGFueVtdLFxuICBrZXlTZXBhcmF0b3I6IHN0cmluZyA9ICcsJyxcbiAgbGluZVNlcGFyYXRvcjogc3RyaW5nID0gJ1xcclxcbicsXG4pOiBzdHJpbmcge1xuICBpZiAoIW9iamVjdHMpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgb3V0cHV0U3RyaW5nOiBzdHJpbmcgPSAnJztcblxuICAvLyBJdGVyYXRlIHRocm91Z2ggYXJyYXksIGNyZWF0aW5nIG9uZSBvdXRwdXQgbGluZSBwZXIgb2JqZWN0XG4gIG9iamVjdHMuZm9yRWFjaCgodmFsdWU6IG9iamVjdCwga2V5OiBudW1iZXIpID0+IHtcbiAgICBsZXQgbGluZTogc3RyaW5nID0gJyc7XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBPYmplY3Qua2V5cyhvYmplY3RzW2tleV0pKSB7XG4gICAgICBpZiAobGluZSAhPT0gJycpIHtcbiAgICAgICAgbGluZSArPSBrZXlTZXBhcmF0b3I7XG4gICAgICB9XG4gICAgICBpZiAob2JqZWN0c1trZXldW2luZGV4XSA9PT0gbnVsbCB8fCBvYmplY3RzW2tleV1baW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2JqZWN0c1trZXldW2luZGV4XSA9ICcnO1xuICAgICAgfVxuICAgICAgbGluZSArPSBvYmplY3RzW2tleV1baW5kZXhdO1xuICAgIH1cbiAgICBvdXRwdXRTdHJpbmcgKz0gYCR7bGluZX0ke2xpbmVTZXBhcmF0b3J9YDtcbiAgfSk7XG5cbiAgLy8gQXBwZW5kIGhlYWRlciByb3cgaWRlbnRpZnlpbmcga2V5cyBpbnRvIG91dHB1dFxuICBpZiAob2JqZWN0c1swXSkge1xuICAgIGNvbnN0IGhlYWRlcnM6IHN0cmluZyA9IE9iamVjdC5rZXlzKG9iamVjdHNbMF0pLmpvaW4oa2V5U2VwYXJhdG9yKTtcbiAgICBvdXRwdXRTdHJpbmcgPSBgJHtoZWFkZXJzfSR7bGluZVNlcGFyYXRvcn0ke291dHB1dFN0cmluZ31gO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dFN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJzaW9uIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBDU1YgcmVwcmVzZW50YXRpb25cbiAqIG9mIG9iamVjdHMgYW5kIGNvbnZlcnRzIHRoZW0gdG8gSlNPTi5cbiAqIFRoZSBmaXJzdCByb3cgaW4gdGhlIGlucHV0IG11c3QgYmUgdGhlIG9iamVjdCBrZXlzLlxuICogQ3VzdG9tIGtleSBzZXBhcmF0b3IgYW5kIGxpbmUgc2VwYXJhdG9yIGNhbiBiZSBzcGVjaWZpZWQuXG4gKiBJbmRlbnRhdGlvbiBzaXplIGZvciBvdXRwdXQgSlNPTiBjYW4gYmUgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjc3YgbGlzdCBvZiBzdHJpbmdzIGluIEpTT04gZm9ybWF0IG9yIGFjdHVhbCBvYmplY3RzXG4gKiBAcGFyYW0ga2V5U2VwYXJhdG9yIG9wdGlvbmFsIHBhcmFtZXRlciB0byBzcGVjaWZ5IGN1c3RvbSB2YWx1ZSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBsaW5lU2VwYXJhdG9yIG9wdGlvbmFsIHBhcmFtZXRlciB0byBzcGVjaWZ5IGN1c3RvbSBlbmQgb2YgbGluZSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBpbmRlbnQgb3B0aW9uYWwgcGFyYW1ldGVyIGluZGljYXRpbmcgc3BhY2UgaW5kZW50YXRpb24gZm9yIHByZXR0eSBvdXRwdXQuIERlZmF1bHQgaXMgMi5cbiAqIEByZXR1cm5zIEpTT04gZm9ybWF0dGVkIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENTVlRvSlNPTihcbiAgY3N2OiBzdHJpbmcsXG4gIGtleVNlcGFyYXRvcjogc3RyaW5nID0gJywnLFxuICBsaW5lU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFxyXFxuJyxcbiAgaW5kZW50OiBudW1iZXIgPSAyLFxuKTogc3RyaW5nIHtcbiAgaWYgKCFjc3YpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCBjc3ZBcnJheTogc3RyaW5nW10gPSBjc3Yuc3BsaXQobGluZVNlcGFyYXRvcik7XG4gIC8vIElucHV0IENTViBtdXN0IGhhdmUgYSBtaW5pbXVtIG9mIHR3byByb3dzXG4gIGlmIChjc3ZBcnJheS5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgbmV3T2JqZWN0czogYW55W10gPSBbXTtcblxuICAvLyBFeHRyYWN0IG9iamVjdCBrZXlzIGZyb20gaGVhZGVyIHJvd1xuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IGNzdkFycmF5WzBdLnNwbGl0KGtleVNlcGFyYXRvcik7XG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBhcnJheSwgY3JlYXRpbmcgb25lIG91dHB1dCBsaW5lIHBlciBvYmplY3RcbiAgZm9yIChsZXQgaTogbnVtYmVyID0gMTsgaSA8IGNzdkFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbmV3T2JqZWN0OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0IHZhbHVlczogc3RyaW5nW10gPSBjc3ZBcnJheVtpXS5zcGxpdChrZXlTZXBhcmF0b3IpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBrZXlzLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGZvciAobGV0IGo6IG51bWJlciA9IDA7IGogPCBrZXlzLmxlbmd0aDsgaisrKSB7XG4gICAgICBuZXdPYmplY3Rba2V5c1tqXV0gPSB2YWx1ZXNbal07XG4gICAgfVxuICAgIG5ld09iamVjdHMucHVzaChuZXdPYmplY3QpO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdEpTT04obmV3T2JqZWN0cywgaW5kZW50KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IG9iamVjdCB0byBKU09OIHVzaW5nIHN0cmluZ2lmeS4gSW5kZW50YXRpb24gc2l6ZSBmb3Igb3V0cHV0IEpTT04gY2FuIGJlIHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0ganNvbiBvYmplY3QgdG8gYmUgY29udmVydGVkXG4gKiBAcGFyYW0gaW5kZW50IG9wdGlvbmFsIHBhcmFtZXRlciBpbmRpY2F0aW5nIHNwYWNlIGluZGVudGF0aW9uIGZvciBwcmV0dHkgb3V0cHV0LiBEZWZhdWx0IGlzIDIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRKU09OKGpzb246IG9iamVjdCwgaW5kZW50OiBudW1iZXIgPSAyKTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGpzb24sIHVuZGVmaW5lZCwgaW5kZW50KTtcbn1cbiJdfQ==
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { convertObjectsToCSV, formatJSON } from './convert';
|
2
|
+
/**
|
3
|
+
* Download CSV content to the specified file with .csv extension
|
4
|
+
* appended to the provided base file name.
|
5
|
+
*
|
6
|
+
* @param fileBaseName base name of destination file
|
7
|
+
* @param csv CSV contents
|
8
|
+
*/
|
9
|
+
export function downloadCSV(fileBaseName, csv) {
|
10
|
+
downloadFile(`${fileBaseName}.csv`, csv, 'text/csv');
|
11
|
+
}
|
12
|
+
/**
|
13
|
+
* Download JSON content to the specified file with .json extension
|
14
|
+
* appended to the provided base file name.
|
15
|
+
*
|
16
|
+
* @param fileBaseName base name of destination file
|
17
|
+
* @param json JSON contents
|
18
|
+
* @param format indicates if JSON should be prettied
|
19
|
+
* @param indent optional parameter indicating space indentation for pretty output. Default is 2
|
20
|
+
*/
|
21
|
+
export function downloadJSON(fileBaseName, json, format = false, indent = 2) {
|
22
|
+
downloadFile(`${fileBaseName}.json`, format ? formatJSON(JSON.parse(json), indent) : json, 'application/json');
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* Convert objects to CSV format and download to file with .csv
|
26
|
+
* extension appended to the provided base file name. Custom key
|
27
|
+
* separator and line separator can be specified.
|
28
|
+
*
|
29
|
+
* @param fileBaseName base name of destination file
|
30
|
+
* @param objects object array to be converted to CSV format
|
31
|
+
* prior to writing to download destination
|
32
|
+
* @param keySeparator optional parameter to specify custom value separator
|
33
|
+
* @param lineSeparator optional parameter to specify custom end of line separator
|
34
|
+
*/
|
35
|
+
export function downloadObjectsToCSV(fileBaseName, objects, keySeparator = ',', lineSeparator = '\r\n') {
|
36
|
+
downloadFile(`${fileBaseName}.csv`, convertObjectsToCSV(objects, keySeparator, lineSeparator), 'text/csv');
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Convert objects to JSON format and download to file with .json
|
40
|
+
* extension appended to the provided base file name.
|
41
|
+
*
|
42
|
+
* @param fileBaseName base name of destination file
|
43
|
+
* @param objects object array to be converted to JSON format
|
44
|
+
* prior to writing to download destination
|
45
|
+
* @param indent optional parameter indicating space indentation for pretty output. Default is 2
|
46
|
+
*/
|
47
|
+
export function downloadObjectsToJSON(fileBaseName, objects, indent = 2) {
|
48
|
+
downloadFile(`${fileBaseName}.json`, formatJSON(objects, indent), 'application/json');
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Download string content to the specified file with desired mime type.
|
52
|
+
*
|
53
|
+
* @param fileName full filename (including appropriate extension) of destination file
|
54
|
+
* @param contents string contents to be written to download destination
|
55
|
+
* @param mimeType mime type appropriate to file content to support consumption of destination file
|
56
|
+
*/
|
57
|
+
export function downloadFile(fileName, contents, mimeType = 'text/plain') {
|
58
|
+
if (!fileName || !contents) {
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
// Create blob object and assign URL
|
62
|
+
const blob = new Blob([contents], { type: mimeType });
|
63
|
+
const url = window.URL.createObjectURL(blob);
|
64
|
+
// Construct anchor for URL, append to DOM, click and cleanup.
|
65
|
+
const a = document.createElement('a');
|
66
|
+
a.setAttribute('style', 'display: none');
|
67
|
+
a.setAttribute('download', fileName);
|
68
|
+
a.href = url;
|
69
|
+
document.body.appendChild(a);
|
70
|
+
a.click();
|
71
|
+
window.URL.revokeObjectURL(url);
|
72
|
+
document.body.removeChild(a);
|
73
|
+
window.URL.revokeObjectURL(url);
|
74
|
+
}
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9jb21tb24vZnVuY3Rpb25zL2Rvd25sb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxZQUFvQixFQUFFLEdBQVc7SUFDM0QsWUFBWSxDQUFDLEdBQUcsWUFBWSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsWUFBb0IsRUFBRSxJQUFZLEVBQUUsU0FBa0IsS0FBSyxFQUFFLFNBQWlCLENBQUM7SUFDMUcsWUFBWSxDQUFDLEdBQUcsWUFBWSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDakgsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFlBQW9CLEVBQ3BCLE9BQWMsRUFDZCxlQUF1QixHQUFHLEVBQzFCLGdCQUF3QixNQUFNO0lBRTlCLFlBQVksQ0FBQyxHQUFHLFlBQVksTUFBTSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDN0csQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFlBQW9CLEVBQUUsT0FBYyxFQUFFLFNBQWlCLENBQUM7SUFDNUYsWUFBWSxDQUFDLEdBQUcsWUFBWSxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQixZQUFZO0lBQzlGLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDMUIsT0FBTztLQUNSO0lBRUQsb0NBQW9DO0lBQ3BDLE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxNQUFNLEdBQUcsR0FBVyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRCw4REFBOEQ7SUFDOUQsTUFBTSxDQUFDLEdBQXNCLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydE9iamVjdHNUb0NTViwgZm9ybWF0SlNPTiB9IGZyb20gJy4vY29udmVydCc7XG5cbi8qKlxuICogRG93bmxvYWQgQ1NWIGNvbnRlbnQgdG8gdGhlIHNwZWNpZmllZCBmaWxlIHdpdGggLmNzdiBleHRlbnNpb25cbiAqIGFwcGVuZGVkIHRvIHRoZSBwcm92aWRlZCBiYXNlIGZpbGUgbmFtZS5cbiAqXG4gKiBAcGFyYW0gZmlsZUJhc2VOYW1lIGJhc2UgbmFtZSBvZiBkZXN0aW5hdGlvbiBmaWxlXG4gKiBAcGFyYW0gY3N2IENTViBjb250ZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRDU1YoZmlsZUJhc2VOYW1lOiBzdHJpbmcsIGNzdjogc3RyaW5nKTogdm9pZCB7XG4gIGRvd25sb2FkRmlsZShgJHtmaWxlQmFzZU5hbWV9LmNzdmAsIGNzdiwgJ3RleHQvY3N2Jyk7XG59XG5cbi8qKlxuICogRG93bmxvYWQgSlNPTiBjb250ZW50IHRvIHRoZSBzcGVjaWZpZWQgZmlsZSB3aXRoIC5qc29uIGV4dGVuc2lvblxuICogYXBwZW5kZWQgdG8gdGhlIHByb3ZpZGVkIGJhc2UgZmlsZSBuYW1lLlxuICpcbiAqIEBwYXJhbSBmaWxlQmFzZU5hbWUgYmFzZSBuYW1lIG9mIGRlc3RpbmF0aW9uIGZpbGVcbiAqIEBwYXJhbSBqc29uIEpTT04gY29udGVudHNcbiAqIEBwYXJhbSBmb3JtYXQgaW5kaWNhdGVzIGlmIEpTT04gc2hvdWxkIGJlIHByZXR0aWVkXG4gKiBAcGFyYW0gaW5kZW50IG9wdGlvbmFsIHBhcmFtZXRlciBpbmRpY2F0aW5nIHNwYWNlIGluZGVudGF0aW9uIGZvciBwcmV0dHkgb3V0cHV0LiBEZWZhdWx0IGlzIDJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkSlNPTihmaWxlQmFzZU5hbWU6IHN0cmluZywganNvbjogc3RyaW5nLCBmb3JtYXQ6IGJvb2xlYW4gPSBmYWxzZSwgaW5kZW50OiBudW1iZXIgPSAyKTogdm9pZCB7XG4gIGRvd25sb2FkRmlsZShgJHtmaWxlQmFzZU5hbWV9Lmpzb25gLCBmb3JtYXQgPyBmb3JtYXRKU09OKEpTT04ucGFyc2UoanNvbiksIGluZGVudCkgOiBqc29uLCAnYXBwbGljYXRpb24vanNvbicpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgb2JqZWN0cyB0byBDU1YgZm9ybWF0IGFuZCBkb3dubG9hZCB0byBmaWxlIHdpdGggLmNzdlxuICogZXh0ZW5zaW9uIGFwcGVuZGVkIHRvIHRoZSBwcm92aWRlZCBiYXNlIGZpbGUgbmFtZS4gQ3VzdG9tIGtleVxuICogc2VwYXJhdG9yIGFuZCBsaW5lIHNlcGFyYXRvciBjYW4gYmUgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBmaWxlQmFzZU5hbWUgYmFzZSBuYW1lIG9mIGRlc3RpbmF0aW9uIGZpbGVcbiAqIEBwYXJhbSBvYmplY3RzIG9iamVjdCBhcnJheSB0byBiZSBjb252ZXJ0ZWQgdG8gQ1NWIGZvcm1hdFxuICogICBwcmlvciB0byB3cml0aW5nIHRvIGRvd25sb2FkIGRlc3RpbmF0aW9uXG4gKiBAcGFyYW0ga2V5U2VwYXJhdG9yIG9wdGlvbmFsIHBhcmFtZXRlciB0byBzcGVjaWZ5IGN1c3RvbSB2YWx1ZSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBsaW5lU2VwYXJhdG9yIG9wdGlvbmFsIHBhcmFtZXRlciB0byBzcGVjaWZ5IGN1c3RvbSBlbmQgb2YgbGluZSBzZXBhcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkT2JqZWN0c1RvQ1NWKFxuICBmaWxlQmFzZU5hbWU6IHN0cmluZyxcbiAgb2JqZWN0czogYW55W10sXG4gIGtleVNlcGFyYXRvcjogc3RyaW5nID0gJywnLFxuICBsaW5lU2VwYXJhdG9yOiBzdHJpbmcgPSAnXFxyXFxuJyxcbik6IHZvaWQge1xuICBkb3dubG9hZEZpbGUoYCR7ZmlsZUJhc2VOYW1lfS5jc3ZgLCBjb252ZXJ0T2JqZWN0c1RvQ1NWKG9iamVjdHMsIGtleVNlcGFyYXRvciwgbGluZVNlcGFyYXRvciksICd0ZXh0L2NzdicpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgb2JqZWN0cyB0byBKU09OIGZvcm1hdCBhbmQgZG93bmxvYWQgdG8gZmlsZSB3aXRoIC5qc29uXG4gKiBleHRlbnNpb24gYXBwZW5kZWQgdG8gdGhlIHByb3ZpZGVkIGJhc2UgZmlsZSBuYW1lLlxuICpcbiAqIEBwYXJhbSBmaWxlQmFzZU5hbWUgYmFzZSBuYW1lIG9mIGRlc3RpbmF0aW9uIGZpbGVcbiAqIEBwYXJhbSBvYmplY3RzIG9iamVjdCBhcnJheSB0byBiZSBjb252ZXJ0ZWQgdG8gSlNPTiBmb3JtYXRcbiAqICAgcHJpb3IgdG8gd3JpdGluZyB0byBkb3dubG9hZCBkZXN0aW5hdGlvblxuICogQHBhcmFtIGluZGVudCBvcHRpb25hbCBwYXJhbWV0ZXIgaW5kaWNhdGluZyBzcGFjZSBpbmRlbnRhdGlvbiBmb3IgcHJldHR5IG91dHB1dC4gRGVmYXVsdCBpcyAyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZE9iamVjdHNUb0pTT04oZmlsZUJhc2VOYW1lOiBzdHJpbmcsIG9iamVjdHM6IGFueVtdLCBpbmRlbnQ6IG51bWJlciA9IDIpOiB2b2lkIHtcbiAgZG93bmxvYWRGaWxlKGAke2ZpbGVCYXNlTmFtZX0uanNvbmAsIGZvcm1hdEpTT04ob2JqZWN0cywgaW5kZW50KSwgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbn1cblxuLyoqXG4gKiBEb3dubG9hZCBzdHJpbmcgY29udGVudCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgd2l0aCBkZXNpcmVkIG1pbWUgdHlwZS5cbiAqXG4gKiBAcGFyYW0gZmlsZU5hbWUgZnVsbCBmaWxlbmFtZSAoaW5jbHVkaW5nIGFwcHJvcHJpYXRlIGV4dGVuc2lvbikgb2YgZGVzdGluYXRpb24gZmlsZVxuICogQHBhcmFtIGNvbnRlbnRzIHN0cmluZyBjb250ZW50cyB0byBiZSB3cml0dGVuIHRvIGRvd25sb2FkIGRlc3RpbmF0aW9uXG4gKiBAcGFyYW0gbWltZVR5cGUgbWltZSB0eXBlIGFwcHJvcHJpYXRlIHRvIGZpbGUgY29udGVudCB0byBzdXBwb3J0IGNvbnN1bXB0aW9uIG9mIGRlc3RpbmF0aW9uIGZpbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZShmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nID0gJ3RleHQvcGxhaW4nKTogdm9pZCB7XG4gIGlmICghZmlsZU5hbWUgfHwgIWNvbnRlbnRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQ3JlYXRlIGJsb2Igb2JqZWN0IGFuZCBhc3NpZ24gVVJMXG4gIGNvbnN0IGJsb2I6IEJsb2IgPSBuZXcgQmxvYihbY29udGVudHNdLCB7IHR5cGU6IG1pbWVUeXBlIH0pO1xuICBjb25zdCB1cmw6IHN0cmluZyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gIC8vIENvbnN0cnVjdCBhbmNob3IgZm9yIFVSTCwgYXBwZW5kIHRvIERPTSwgY2xpY2sgYW5kIGNsZWFudXAuXG4gIGNvbnN0IGE6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICBhLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZScpO1xuICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XG4gIGEuaHJlZiA9IHVybDtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgYS5jbGljaygpO1xuICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xufVxuIl19
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* Read file as UTF-8 text. Return string contents on read completion.
|
3
|
+
*
|
4
|
+
* @param file filename or File object
|
5
|
+
* @returns promise that resolves to file content string
|
6
|
+
*/
|
7
|
+
export function readFile(file) {
|
8
|
+
return new Promise((resolve) => {
|
9
|
+
const reader = new FileReader();
|
10
|
+
reader.readAsText(file, 'UTF-8');
|
11
|
+
reader.onload = () => {
|
12
|
+
resolve(reader.result);
|
13
|
+
};
|
14
|
+
});
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9mdW5jdGlvbnMvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBVTtJQUNqQyxPQUFPLElBQUksT0FBTyxDQUFTLENBQUMsT0FBZ0MsRUFBRSxFQUFFO1FBQzlELE1BQU0sTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxDQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlYWQgZmlsZSBhcyBVVEYtOCB0ZXh0LiBSZXR1cm4gc3RyaW5nIGNvbnRlbnRzIG9uIHJlYWQgY29tcGxldGlvbi5cbiAqXG4gKiBAcGFyYW0gZmlsZSBmaWxlbmFtZSBvciBGaWxlIG9iamVjdFxuICogQHJldHVybnMgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGZpbGUgY29udGVudCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpID0+IHtcbiAgICBjb25zdCByZWFkZXI6IEZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICByZXNvbHZlKDxzdHJpbmc+cmVhZGVyLnJlc3VsdCk7XG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './public-api';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class TdBytesPipe {
|
4
|
+
/* `bytes` needs to be `any` or TypeScript complains
|
5
|
+
Tried both `number` and `number | string` */
|
6
|
+
transform(bytes, precision = 2) {
|
7
|
+
if (bytes === 0) {
|
8
|
+
return '0 B';
|
9
|
+
}
|
10
|
+
else if (isNaN(parseInt(bytes, 10))) {
|
11
|
+
/* If not a valid number, return 'Invalid Number' */
|
12
|
+
return 'Invalid Number';
|
13
|
+
}
|
14
|
+
const k = 1024;
|
15
|
+
const sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
|
16
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
17
|
+
// if less than 1
|
18
|
+
if (i < 0) {
|
19
|
+
return 'Invalid Number';
|
20
|
+
}
|
21
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
/** @nocollapse */ /** @nocollapse */ TdBytesPipe.ɵfac = function TdBytesPipe_Factory(t) { return new (t || TdBytesPipe)(); };
|
25
|
+
/** @nocollapse */ /** @nocollapse */ TdBytesPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "bytes", type: TdBytesPipe, pure: true });
|
26
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdBytesPipe, [{
|
27
|
+
type: Pipe,
|
28
|
+
args: [{
|
29
|
+
name: 'bytes',
|
30
|
+
}]
|
31
|
+
}], null, null); })();
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9waXBlcy9ieXRlcy9ieXRlcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sV0FBVztJQUN0QjtnREFDNEM7SUFDNUMsU0FBUyxDQUFDLEtBQVUsRUFBRSxZQUFvQixDQUFDO1FBQ3pDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDckMsb0RBQW9EO1lBQ3BELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7UUFDRCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUM7UUFDdkIsTUFBTSxLQUFLLEdBQWEsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNULE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7UUFDRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7NEdBbEJVLFdBQVc7MkhBQVgsV0FBVzt1RkFBWCxXQUFXO2NBSHZCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsT0FBTzthQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdieXRlcycsXG59KVxuZXhwb3J0IGNsYXNzIFRkQnl0ZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qIGBieXRlc2AgbmVlZHMgdG8gYmUgYGFueWAgb3IgVHlwZVNjcmlwdCBjb21wbGFpbnNcbiAgVHJpZWQgYm90aCBgbnVtYmVyYCBhbmQgYG51bWJlciB8IHN0cmluZ2AgKi9cbiAgdHJhbnNmb3JtKGJ5dGVzOiBhbnksIHByZWNpc2lvbjogbnVtYmVyID0gMik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gJzAgQic7XG4gICAgfSBlbHNlIGlmIChpc05hTihwYXJzZUludChieXRlcywgMTApKSkge1xuICAgICAgLyogSWYgbm90IGEgdmFsaWQgbnVtYmVyLCByZXR1cm4gJ0ludmFsaWQgTnVtYmVyJyAqL1xuICAgICAgcmV0dXJuICdJbnZhbGlkIE51bWJlcic7XG4gICAgfVxuICAgIGNvbnN0IGs6IG51bWJlciA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXM6IHN0cmluZ1tdID0gWydCJywgJ0tpQicsICdNaUInLCAnR2lCJywgJ1RpQicsICdQaUInLCAnRWlCJywgJ1ppQicsICdZaUInXTtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcbiAgICAvLyBpZiBsZXNzIHRoYW4gMVxuICAgIGlmIChpIDwgMCkge1xuICAgICAgcmV0dXJuICdJbnZhbGlkIE51bWJlcic7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKHByZWNpc2lvbikpICsgJyAnICsgc2l6ZXNbaV07XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class TdDecimalBytesPipe {
|
4
|
+
/* `bytes` needs to be `any` or TypeScript complains
|
5
|
+
Tried both `number` and `number | string` */
|
6
|
+
transform(bytes, precision = 2) {
|
7
|
+
if (bytes === 0) {
|
8
|
+
return '0 B';
|
9
|
+
}
|
10
|
+
else if (isNaN(parseInt(bytes, 10))) {
|
11
|
+
/* If not a valid number, return 'Invalid Number' */
|
12
|
+
return 'Invalid Number';
|
13
|
+
}
|
14
|
+
const k = 1000;
|
15
|
+
const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
16
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
17
|
+
// if less than 1
|
18
|
+
if (i < 0) {
|
19
|
+
return 'Invalid Number';
|
20
|
+
}
|
21
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
/** @nocollapse */ /** @nocollapse */ TdDecimalBytesPipe.ɵfac = function TdDecimalBytesPipe_Factory(t) { return new (t || TdDecimalBytesPipe)(); };
|
25
|
+
/** @nocollapse */ /** @nocollapse */ TdDecimalBytesPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "decimalBytes", type: TdDecimalBytesPipe, pure: true });
|
26
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDecimalBytesPipe, [{
|
27
|
+
type: Pipe,
|
28
|
+
args: [{
|
29
|
+
name: 'decimalBytes',
|
30
|
+
}]
|
31
|
+
}], null, null); })();
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1ieXRlcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL2NvcmUvY29tbW9uL3BpcGVzL2RlY2ltYWwtYnl0ZXMvZGVjaW1hbC1ieXRlcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCO2dEQUM0QztJQUM1QyxTQUFTLENBQUMsS0FBVSxFQUFFLFlBQW9CLENBQUM7UUFDekMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2YsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNyQyxvREFBb0Q7WUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUNELE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUNELE9BQU8sVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDOzswSEFsQlUsa0JBQWtCO3lJQUFsQixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUg5QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2RlY2ltYWxCeXRlcycsXG59KVxuZXhwb3J0IGNsYXNzIFRkRGVjaW1hbEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAvKiBgYnl0ZXNgIG5lZWRzIHRvIGJlIGBhbnlgIG9yIFR5cGVTY3JpcHQgY29tcGxhaW5zXG4gIFRyaWVkIGJvdGggYG51bWJlcmAgYW5kIGBudW1iZXIgfCBzdHJpbmdgICovXG4gIHRyYW5zZm9ybShieXRlczogYW55LCBwcmVjaXNpb246IG51bWJlciA9IDIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkge1xuICAgICAgcmV0dXJuICcwIEInO1xuICAgIH0gZWxzZSBpZiAoaXNOYU4ocGFyc2VJbnQoYnl0ZXMsIDEwKSkpIHtcbiAgICAgIC8qIElmIG5vdCBhIHZhbGlkIG51bWJlciwgcmV0dXJuICdJbnZhbGlkIE51bWJlcicgKi9cbiAgICAgIHJldHVybiAnSW52YWxpZCBOdW1iZXInO1xuICAgIH1cbiAgICBjb25zdCBrOiBudW1iZXIgPSAxMDAwO1xuICAgIGNvbnN0IHNpemVzOiBzdHJpbmdbXSA9IFsnQicsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIC8vIGlmIGxlc3MgdGhhbiAxXG4gICAgaWYgKGkgPCAwKSB7XG4gICAgICByZXR1cm4gJ0ludmFsaWQgTnVtYmVyJztcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQocHJlY2lzaW9uKSkgKyAnICcgKyBzaXplc1tpXTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { Pipe, Inject, LOCALE_ID } from '@angular/core';
|
2
|
+
import { DecimalPipe } from '@angular/common';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class TdDigitsPipe {
|
5
|
+
constructor(_locale = 'en') {
|
6
|
+
this._locale = _locale;
|
7
|
+
this._decimalPipe = new DecimalPipe(this._locale);
|
8
|
+
}
|
9
|
+
/* `digits` needs to be type `digits: any` or TypeScript complains */
|
10
|
+
transform(digits, precision = 1) {
|
11
|
+
if (digits === 0) {
|
12
|
+
return '0';
|
13
|
+
}
|
14
|
+
else if (isNaN(parseInt(digits, 10))) {
|
15
|
+
/* If not a valid number, return the value */
|
16
|
+
return digits;
|
17
|
+
}
|
18
|
+
else if (digits < 1) {
|
19
|
+
return this._decimalPipe.transform(digits.toFixed(precision));
|
20
|
+
}
|
21
|
+
const k = 1000;
|
22
|
+
const sizes = ['', 'K', 'M', 'B', 'T', 'Q'];
|
23
|
+
const i = Math.floor(Math.log(digits) / Math.log(k));
|
24
|
+
const size = sizes[i];
|
25
|
+
return (this._decimalPipe.transform(parseFloat((digits / Math.pow(k, i)).toFixed(precision))) + (size ? ' ' + size : ''));
|
26
|
+
}
|
27
|
+
}
|
28
|
+
/** @nocollapse */ /** @nocollapse */ TdDigitsPipe.ɵfac = function TdDigitsPipe_Factory(t) { return new (t || TdDigitsPipe)(i0.ɵɵdirectiveInject(LOCALE_ID, 16)); };
|
29
|
+
/** @nocollapse */ /** @nocollapse */ TdDigitsPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "digits", type: TdDigitsPipe, pure: true });
|
30
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdDigitsPipe, [{
|
31
|
+
type: Pipe,
|
32
|
+
args: [{
|
33
|
+
name: 'digits',
|
34
|
+
}]
|
35
|
+
}], function () { return [{ type: undefined, decorators: [{
|
36
|
+
type: Inject,
|
37
|
+
args: [LOCALE_ID]
|
38
|
+
}] }]; }, null); })();
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9jb21tb24vcGlwZXMvZGlnaXRzL2RpZ2l0cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUs5QyxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUF1QyxVQUFrQixJQUFJO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxTQUFTLENBQUMsTUFBVyxFQUFFLFlBQW9CLENBQUM7UUFDMUMsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sR0FBRyxDQUFDO1NBQ1o7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsNkNBQTZDO1lBQzdDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUM7UUFDdkIsTUFBTSxLQUFLLEdBQWEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDakgsQ0FBQztJQUNKLENBQUM7OzhHQXhCVSxZQUFZLHVCQUdILFNBQVM7NkhBSGxCLFlBQVk7dUZBQVosWUFBWTtjQUh4QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLFFBQVE7YUFDZjs7c0JBSWMsTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgSW5qZWN0LCBMT0NBTEVfSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZGlnaXRzJyxcbn0pXG5leHBvcnQgY2xhc3MgVGREaWdpdHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgX2RlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcgPSAnZW4nKSB7XG4gICAgdGhpcy5fZGVjaW1hbFBpcGUgPSBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKTtcbiAgfVxuXG4gIC8qIGBkaWdpdHNgIG5lZWRzIHRvIGJlIHR5cGUgYGRpZ2l0czogYW55YCBvciBUeXBlU2NyaXB0IGNvbXBsYWlucyAqL1xuICB0cmFuc2Zvcm0oZGlnaXRzOiBhbnksIHByZWNpc2lvbjogbnVtYmVyID0gMSk6IHN0cmluZyB7XG4gICAgaWYgKGRpZ2l0cyA9PT0gMCkge1xuICAgICAgcmV0dXJuICcwJztcbiAgICB9IGVsc2UgaWYgKGlzTmFOKHBhcnNlSW50KGRpZ2l0cywgMTApKSkge1xuICAgICAgLyogSWYgbm90IGEgdmFsaWQgbnVtYmVyLCByZXR1cm4gdGhlIHZhbHVlICovXG4gICAgICByZXR1cm4gZGlnaXRzO1xuICAgIH0gZWxzZSBpZiAoZGlnaXRzIDwgMSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybShkaWdpdHMudG9GaXhlZChwcmVjaXNpb24pKTtcbiAgICB9XG4gICAgY29uc3QgazogbnVtYmVyID0gMTAwMDtcbiAgICBjb25zdCBzaXplczogc3RyaW5nW10gPSBbJycsICdLJywgJ00nLCAnQicsICdUJywgJ1EnXTtcbiAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKGRpZ2l0cykgLyBNYXRoLmxvZyhrKSk7XG4gICAgY29uc3Qgc2l6ZTogc3RyaW5nID0gc2l6ZXNbaV07XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybShwYXJzZUZsb2F0KChkaWdpdHMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChwcmVjaXNpb24pKSkgKyAoc2l6ZSA/ICcgJyArIHNpemUgOiAnJylcbiAgICApO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class TdTimeAgoPipe {
|
4
|
+
transform(time, reference) {
|
5
|
+
// Convert time to date object if not already
|
6
|
+
time = new Date(time);
|
7
|
+
const ref = new Date(reference);
|
8
|
+
// If not a valid timestamp, return 'Invalid Date'
|
9
|
+
if (!time.getTime()) {
|
10
|
+
return 'Invalid Date';
|
11
|
+
}
|
12
|
+
// For unit testing, we need to be able to declare a static start time
|
13
|
+
// for calculations, or else speed of tests can bork.
|
14
|
+
const startTime = isNaN(ref.getTime()) ? Date.now() : ref.getTime();
|
15
|
+
let diff = Math.floor((startTime - time.getTime()) / 1000);
|
16
|
+
if (diff < 2) {
|
17
|
+
return '1 second ago';
|
18
|
+
}
|
19
|
+
if (diff < 60) {
|
20
|
+
return Math.floor(diff) + ' seconds ago';
|
21
|
+
}
|
22
|
+
// Minutes
|
23
|
+
diff = diff / 60;
|
24
|
+
if (diff < 2) {
|
25
|
+
return '1 minute ago';
|
26
|
+
}
|
27
|
+
if (diff < 60) {
|
28
|
+
return Math.floor(diff) + ' minutes ago';
|
29
|
+
}
|
30
|
+
// Hours
|
31
|
+
diff = diff / 60;
|
32
|
+
if (diff < 2) {
|
33
|
+
return '1 hour ago';
|
34
|
+
}
|
35
|
+
if (diff < 24) {
|
36
|
+
return Math.floor(diff) + ' hours ago';
|
37
|
+
}
|
38
|
+
// Days
|
39
|
+
diff = diff / 24;
|
40
|
+
if (diff < 2) {
|
41
|
+
return '1 day ago';
|
42
|
+
}
|
43
|
+
if (diff < 30) {
|
44
|
+
return Math.floor(diff) + ' days ago';
|
45
|
+
}
|
46
|
+
// Months
|
47
|
+
diff = diff / 30;
|
48
|
+
if (diff < 2) {
|
49
|
+
return '1 month ago';
|
50
|
+
}
|
51
|
+
if (diff < 12) {
|
52
|
+
return Math.floor(diff) + ' months ago';
|
53
|
+
}
|
54
|
+
// Years
|
55
|
+
diff = diff / 12;
|
56
|
+
if (diff < 2) {
|
57
|
+
return '1 year ago';
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
return Math.floor(diff) + ' years ago';
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
/** @nocollapse */ /** @nocollapse */ TdTimeAgoPipe.ɵfac = function TdTimeAgoPipe_Factory(t) { return new (t || TdTimeAgoPipe)(); };
|
65
|
+
/** @nocollapse */ /** @nocollapse */ TdTimeAgoPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "timeAgo", type: TdTimeAgoPipe, pure: true });
|
66
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdTimeAgoPipe, [{
|
67
|
+
type: Pipe,
|
68
|
+
args: [{
|
69
|
+
name: 'timeAgo',
|
70
|
+
}]
|
71
|
+
}], null, null); })();
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2NvbW1vbi9waXBlcy90aW1lLWFnby90aW1lLWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsSUFBUyxFQUFFLFNBQWU7UUFDbEMsNkNBQTZDO1FBQzdDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLEdBQUcsR0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0QyxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELHNFQUFzRTtRQUN0RSxxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1RSxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNaLE9BQU8sY0FBYyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUMxQztRQUNELFVBQVU7UUFDVixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7U0FDMUM7UUFDRCxRQUFRO1FBQ1IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ1osT0FBTyxZQUFZLENBQUM7U0FDckI7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDO1NBQ3hDO1FBQ0QsT0FBTztRQUNQLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNaLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQztTQUN2QztRQUNELFNBQVM7UUFDVCxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixPQUFPLGFBQWEsQ0FBQztTQUN0QjtRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUM7U0FDekM7UUFDRCxRQUFRO1FBQ1IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ1osT0FBTyxZQUFZLENBQUM7U0FDckI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDeEM7SUFDSCxDQUFDOztnSEE3RFUsYUFBYTsrSEFBYixhQUFhO3VGQUFiLGFBQWE7Y0FIekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2FBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0aW1lQWdvJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRUaW1lQWdvUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odGltZTogYW55LCByZWZlcmVuY2U/OiBhbnkpOiBzdHJpbmcge1xuICAgIC8vIENvbnZlcnQgdGltZSB0byBkYXRlIG9iamVjdCBpZiBub3QgYWxyZWFkeVxuICAgIHRpbWUgPSBuZXcgRGF0ZSh0aW1lKTtcbiAgICBjb25zdCByZWY6IERhdGUgPSBuZXcgRGF0ZShyZWZlcmVuY2UpO1xuXG4gICAgLy8gSWYgbm90IGEgdmFsaWQgdGltZXN0YW1wLCByZXR1cm4gJ0ludmFsaWQgRGF0ZSdcbiAgICBpZiAoIXRpbWUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ0ludmFsaWQgRGF0ZSc7XG4gICAgfVxuXG4gICAgLy8gRm9yIHVuaXQgdGVzdGluZywgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGRlY2xhcmUgYSBzdGF0aWMgc3RhcnQgdGltZVxuICAgIC8vIGZvciBjYWxjdWxhdGlvbnMsIG9yIGVsc2Ugc3BlZWQgb2YgdGVzdHMgY2FuIGJvcmsuXG4gICAgY29uc3Qgc3RhcnRUaW1lOiBudW1iZXIgPSBpc05hTihyZWYuZ2V0VGltZSgpKSA/IERhdGUubm93KCkgOiByZWYuZ2V0VGltZSgpO1xuICAgIGxldCBkaWZmOiBudW1iZXIgPSBNYXRoLmZsb29yKChzdGFydFRpbWUgLSB0aW1lLmdldFRpbWUoKSkgLyAxMDAwKTtcblxuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIHNlY29uZCBhZ28nO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDYwKSB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmKSArICcgc2Vjb25kcyBhZ28nO1xuICAgIH1cbiAgICAvLyBNaW51dGVzXG4gICAgZGlmZiA9IGRpZmYgLyA2MDtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnMSBtaW51dGUgYWdvJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCA2MCkge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIG1pbnV0ZXMgYWdvJztcbiAgICB9XG4gICAgLy8gSG91cnNcbiAgICBkaWZmID0gZGlmZiAvIDYwO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIGhvdXIgYWdvJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCAyNCkge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIGhvdXJzIGFnbyc7XG4gICAgfVxuICAgIC8vIERheXNcbiAgICBkaWZmID0gZGlmZiAvIDI0O1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIGRheSBhZ28nO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDMwKSB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmKSArICcgZGF5cyBhZ28nO1xuICAgIH1cbiAgICAvLyBNb250aHNcbiAgICBkaWZmID0gZGlmZiAvIDMwO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIG1vbnRoIGFnbyc7XG4gICAgfVxuICAgIGlmIChkaWZmIDwgMTIpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmYpICsgJyBtb250aHMgYWdvJztcbiAgICB9XG4gICAgLy8gWWVhcnNcbiAgICBkaWZmID0gZGlmZiAvIDEyO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIHllYXIgYWdvJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIHllYXJzIGFnbyc7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class TdTimeDifferencePipe {
|
4
|
+
transform(start, end) {
|
5
|
+
const startTime = new Date(start);
|
6
|
+
let endTime;
|
7
|
+
if (end !== undefined) {
|
8
|
+
endTime = new Date(end);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
endTime = new Date();
|
12
|
+
}
|
13
|
+
if (!startTime.getTime() || !endTime.getTime()) {
|
14
|
+
return 'Invalid Date';
|
15
|
+
}
|
16
|
+
let diff = Math.floor((endTime.getTime() - startTime.getTime()) / 1000);
|
17
|
+
const days = Math.floor(diff / (60 * 60 * 24));
|
18
|
+
diff = diff - days * (60 * 60 * 24);
|
19
|
+
const hours = Math.floor(diff / (60 * 60));
|
20
|
+
diff = diff - hours * (60 * 60);
|
21
|
+
const minutes = Math.floor(diff / 60);
|
22
|
+
diff -= minutes * 60;
|
23
|
+
const seconds = diff;
|
24
|
+
const pad = '00';
|
25
|
+
let daysFormatted = '';
|
26
|
+
if (days > 0 && days < 2) {
|
27
|
+
daysFormatted = ' day - ';
|
28
|
+
}
|
29
|
+
else if (days > 1) {
|
30
|
+
daysFormatted = ' days - ';
|
31
|
+
}
|
32
|
+
return ((days > 0 ? days + daysFormatted : daysFormatted) +
|
33
|
+
pad.substring(0, pad.length - (hours + '').length) +
|
34
|
+
hours +
|
35
|
+
':' +
|
36
|
+
pad.substring(0, pad.length - (minutes + '').length) +
|
37
|
+
minutes +
|
38
|
+
':' +
|
39
|
+
pad.substring(0, pad.length - (seconds + '').length) +
|
40
|
+
seconds);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
/** @nocollapse */ /** @nocollapse */ TdTimeDifferencePipe.ɵfac = function TdTimeDifferencePipe_Factory(t) { return new (t || TdTimeDifferencePipe)(); };
|
44
|
+
/** @nocollapse */ /** @nocollapse */ TdTimeDifferencePipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "timeDifference", type: TdTimeDifferencePipe, pure: true });
|
45
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdTimeDifferencePipe, [{
|
46
|
+
type: Pipe,
|
47
|
+
args: [{
|
48
|
+
name: 'timeDifference',
|
49
|
+
}]
|
50
|
+
}], null, null); })();
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kaWZmZXJlbmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm0vY29yZS9jb21tb24vcGlwZXMvdGltZS1kaWZmZXJlbmNlL3RpbWUtZGlmZmVyZW5jZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBUztRQUM3QixNQUFNLFNBQVMsR0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQWEsQ0FBQztRQUVsQixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDckIsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUMsT0FBTyxjQUFjLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRWhGLE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVwQyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXJCLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQztRQUU3QixNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUM7UUFFekIsSUFBSSxhQUFhLEdBQVcsRUFBRSxDQUFDO1FBRS9CLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLGFBQWEsR0FBRyxTQUFTLENBQUM7U0FDM0I7YUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDbkIsYUFBYSxHQUFHLFVBQVUsQ0FBQztTQUM1QjtRQUVELE9BQU8sQ0FDTCxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNqRCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNsRCxLQUFLO1lBQ0wsR0FBRztZQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3BELE9BQU87WUFDUCxHQUFHO1lBQ0gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDcEQsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDOzs4SEFqRFUsb0JBQW9COzZJQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQUhoQyxJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGdCQUFnQjthQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAndGltZURpZmZlcmVuY2UnLFxufSlcbmV4cG9ydCBjbGFzcyBUZFRpbWVEaWZmZXJlbmNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oc3RhcnQ6IGFueSwgZW5kPzogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGFydFRpbWU6IERhdGUgPSBuZXcgRGF0ZShzdGFydCk7XG4gICAgbGV0IGVuZFRpbWU6IERhdGU7XG5cbiAgICBpZiAoZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVuZFRpbWUgPSBuZXcgRGF0ZShlbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmRUaW1lID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXJ0VGltZS5nZXRUaW1lKCkgfHwgIWVuZFRpbWUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ0ludmFsaWQgRGF0ZSc7XG4gICAgfVxuXG4gICAgbGV0IGRpZmY6IG51bWJlciA9IE1hdGguZmxvb3IoKGVuZFRpbWUuZ2V0VGltZSgpIC0gc3RhcnRUaW1lLmdldFRpbWUoKSkgLyAxMDAwKTtcblxuICAgIGNvbnN0IGRheXM6IG51bWJlciA9IE1hdGguZmxvb3IoZGlmZiAvICg2MCAqIDYwICogMjQpKTtcbiAgICBkaWZmID0gZGlmZiAtIGRheXMgKiAoNjAgKiA2MCAqIDI0KTtcblxuICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBNYXRoLmZsb29yKGRpZmYgLyAoNjAgKiA2MCkpO1xuICAgIGRpZmYgPSBkaWZmIC0gaG91cnMgKiAoNjAgKiA2MCk7XG5cbiAgICBjb25zdCBtaW51dGVzOiBudW1iZXIgPSBNYXRoLmZsb29yKGRpZmYgLyA2MCk7XG4gICAgZGlmZiAtPSBtaW51dGVzICogNjA7XG5cbiAgICBjb25zdCBzZWNvbmRzOiBudW1iZXIgPSBkaWZmO1xuXG4gICAgY29uc3QgcGFkOiBzdHJpbmcgPSAnMDAnO1xuXG4gICAgbGV0IGRheXNGb3JtYXR0ZWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgaWYgKGRheXMgPiAwICYmIGRheXMgPCAyKSB7XG4gICAgICBkYXlzRm9ybWF0dGVkID0gJyBkYXkgLSAnO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA+IDEpIHtcbiAgICAgIGRheXNGb3JtYXR0ZWQgPSAnIGRheXMgLSAnO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAoZGF5cyA+IDAgPyBkYXlzICsgZGF5c0Zvcm1hdHRlZCA6IGRheXNGb3JtYXR0ZWQpICtcbiAgICAgIHBhZC5zdWJzdHJpbmcoMCwgcGFkLmxlbmd0aCAtIChob3VycyArICcnKS5sZW5ndGgpICtcbiAgICAgIGhvdXJzICtcbiAgICAgICc6JyArXG4gICAgICBwYWQuc3Vic3RyaW5nKDAsIHBhZC5sZW5ndGggLSAobWludXRlcyArICcnKS5sZW5ndGgpICtcbiAgICAgIG1pbnV0ZXMgK1xuICAgICAgJzonICtcbiAgICAgIHBhZC5zdWJzdHJpbmcoMCwgcGFkLmxlbmd0aCAtIChzZWNvbmRzICsgJycpLmxlbmd0aCkgK1xuICAgICAgc2Vjb25kc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|