sk-front-lib 0.14.8 → 0.15.3
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/api/package.json +5 -6
- package/api/sk-api.module.d.ts +7 -0
- package/api/sk-api.service.d.ts +3 -0
- package/api/sk-front-lib-api.d.ts +1 -0
- package/article/package.json +5 -6
- package/article/sk-article-editor-server.component.d.ts +3 -0
- package/article/sk-article-editor.component.d.ts +3 -0
- package/article/sk-article-server.module.d.ts +6 -0
- package/article/sk-article.module.d.ts +7 -0
- package/article/sk-article.service.d.ts +3 -0
- package/article/sk-froala-editor.directive.d.ts +3 -0
- package/article/sk-front-lib-article.d.ts +1 -0
- package/crud/package.json +5 -6
- package/crud/sk-account.service.d.ts +3 -0
- package/crud/sk-auth-admin.guard.d.ts +3 -0
- package/crud/sk-auth.guard.d.ts +3 -0
- package/crud/sk-auth.service.d.ts +3 -0
- package/crud/sk-board.service.d.ts +3 -0
- package/crud/sk-brand.service.d.ts +3 -0
- package/crud/sk-cart.service.d.ts +7 -0
- package/crud/sk-category.service.d.ts +3 -0
- package/crud/sk-comment.service.d.ts +3 -0
- package/crud/sk-config.service.d.ts +3 -0
- package/crud/sk-contact.service.d.ts +3 -0
- package/crud/sk-coupon.service.d.ts +3 -0
- package/crud/sk-document.service.d.ts +3 -0
- package/crud/sk-etc.service.d.ts +3 -0
- package/crud/sk-file.service.d.ts +3 -0
- package/crud/sk-front-lib-crud.d.ts +1 -1
- package/crud/sk-keyword.service.d.ts +3 -0
- package/crud/sk-order.service.d.ts +3 -0
- package/crud/sk-point.service.d.ts +3 -0
- package/crud/sk-product.service.d.ts +4 -0
- package/crud/sk-promotion.service.d.ts +3 -0
- package/crud/sk-search.service.d.ts +3 -0
- package/crud/sk-store.service.d.ts +3 -0
- package/crud/sk-user.service.d.ts +3 -0
- package/{esm2015/api/model/api-config.js → esm2020/api/model/api-config.mjs} +0 -0
- package/{esm2015/api/model/api-pageable-param.js → esm2020/api/model/api-pageable-param.mjs} +0 -0
- package/{esm2015/api/model/api-pageable.js → esm2020/api/model/api-pageable.mjs} +0 -0
- package/{esm2015/api/model/api-response.js → esm2020/api/model/api-response.mjs} +0 -0
- package/{esm2015/api/model/index.js → esm2020/api/model/index.mjs} +0 -0
- package/{esm2015/api/public_api.js → esm2020/api/public_api.mjs} +0 -0
- package/esm2020/api/sk-api.module.mjs +35 -0
- package/esm2020/api/sk-api.service.mjs +145 -0
- package/{esm2015/api/sk-front-lib-api.js → esm2020/api/sk-front-lib-api.mjs} +0 -0
- package/{esm2015/article/public_api.js → esm2020/article/public_api.mjs} +0 -0
- package/esm2020/article/sk-article-editor-server.component.mjs +51 -0
- package/esm2020/article/sk-article-editor.component.mjs +93 -0
- package/esm2020/article/sk-article-server.module.mjs +33 -0
- package/esm2020/article/sk-article.module.mjs +32 -0
- package/esm2020/article/sk-article.service.mjs +248 -0
- package/esm2020/article/sk-froala-editor.directive.mjs +325 -0
- package/{esm2015/article/sk-front-lib-article.js → esm2020/article/sk-front-lib-article.mjs} +0 -0
- package/{esm2015/crud/public_api.js → esm2020/crud/public_api.mjs} +0 -0
- package/esm2020/crud/sk-account.service.mjs +36 -0
- package/esm2020/crud/sk-auth-admin.guard.mjs +31 -0
- package/esm2020/crud/sk-auth.guard.mjs +31 -0
- package/esm2020/crud/sk-auth.service.mjs +67 -0
- package/esm2020/crud/sk-board.service.mjs +54 -0
- package/esm2020/crud/sk-brand.service.mjs +46 -0
- package/esm2020/crud/sk-cart.service.mjs +255 -0
- package/esm2020/crud/sk-category.service.mjs +63 -0
- package/esm2020/crud/sk-comment.service.mjs +43 -0
- package/esm2020/crud/sk-config.service.mjs +31 -0
- package/esm2020/crud/sk-contact.service.mjs +39 -0
- package/esm2020/crud/sk-coupon.service.mjs +62 -0
- package/esm2020/crud/sk-document.service.mjs +95 -0
- package/esm2020/crud/sk-etc.service.mjs +25 -0
- package/esm2020/crud/sk-file.service.mjs +37 -0
- package/esm2020/crud/sk-front-lib-crud.mjs +5 -0
- package/esm2020/crud/sk-keyword.service.mjs +46 -0
- package/esm2020/crud/sk-order.service.mjs +133 -0
- package/esm2020/crud/sk-point.service.mjs +45 -0
- package/esm2020/crud/sk-product.service.mjs +156 -0
- package/esm2020/crud/sk-promotion.service.mjs +81 -0
- package/esm2020/crud/sk-search.service.mjs +25 -0
- package/esm2020/crud/sk-store.service.mjs +47 -0
- package/esm2020/crud/sk-user.service.mjs +69 -0
- package/esm2020/google-analytics/google-analytics-router.module.mjs +30 -0
- package/esm2020/google-analytics/google-analytics.module.mjs +40 -0
- package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +24 -0
- package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +46 -0
- package/{esm2015/google-analytics/interfaces/google-analytics-command.js → esm2020/google-analytics/interfaces/google-analytics-command.mjs} +0 -0
- package/{esm2015/google-analytics/interfaces/google-analytics-settings.js → esm2020/google-analytics/interfaces/google-analytics-settings.mjs} +0 -0
- package/{esm2015/google-analytics/public_api.js → esm2020/google-analytics/public_api.mjs} +0 -0
- package/esm2020/google-analytics/services/google-analytics.service.mjs +200 -0
- package/{esm2015/google-analytics/sk-front-lib-google-analytics.js → esm2020/google-analytics/sk-front-lib-google-analytics.mjs} +0 -0
- package/{esm2015/google-analytics/tokens/google-analytics-settings-token.js → esm2020/google-analytics/tokens/google-analytics-settings-token.mjs} +0 -0
- package/{esm2015/google-analytics/types/ga-action.type.js → esm2020/google-analytics/types/ga-action.type.mjs} +0 -0
- package/{esm2015/google-analytics/types/ga-bind.type.js → esm2020/google-analytics/types/ga-bind.type.mjs} +0 -0
- package/esm2020/image/public_api.mjs +3 -0
- package/esm2020/image/sk-front-lib-image.mjs +5 -0
- package/esm2020/image/sk-image.component.mjs +262 -0
- package/esm2020/image/sk-image.module.mjs +43 -0
- package/{esm2015/lib/sk-animations.js → esm2020/lib/sk-animations.mjs} +0 -0
- package/esm2020/lib/sk-byte.pipe.mjs +18 -0
- package/esm2020/lib/sk-date-time.pipe.mjs +16 -0
- package/esm2020/lib/sk-date.pipe.mjs +16 -0
- package/esm2020/lib/sk-front-lib.module.mjs +42 -0
- package/esm2020/lib/sk-keys.pipe.mjs +23 -0
- package/esm2020/lib/sk-time.pipe.mjs +16 -0
- package/{esm2015/lib/sk-utils.js → esm2020/lib/sk-utils.mjs} +0 -0
- package/{esm2015/model/lib/article.js → esm2020/model/lib/article.mjs} +0 -0
- package/{esm2015/model/lib/audit.js → esm2020/model/lib/audit.mjs} +0 -0
- package/{esm2015/model/lib/auth.js → esm2020/model/lib/auth.mjs} +0 -0
- package/{esm2015/model/lib/board.js → esm2020/model/lib/board.mjs} +0 -0
- package/{esm2015/model/lib/cart.js → esm2020/model/lib/cart.mjs} +0 -0
- package/{esm2015/model/lib/comment.js → esm2020/model/lib/comment.mjs} +0 -0
- package/{esm2015/model/lib/contact.js → esm2020/model/lib/contact.mjs} +0 -0
- package/{esm2015/model/lib/coupon.js → esm2020/model/lib/coupon.mjs} +0 -0
- package/{esm2015/model/lib/document.js → esm2020/model/lib/document.mjs} +0 -0
- package/{esm2015/model/lib/etc.js → esm2020/model/lib/etc.mjs} +0 -0
- package/{esm2015/model/lib/file.js → esm2020/model/lib/file.mjs} +0 -0
- package/{esm2015/model/lib/filetype.js → esm2020/model/lib/filetype.mjs} +0 -0
- package/{esm2015/model/lib/grid.js → esm2020/model/lib/grid.mjs} +0 -0
- package/{esm2015/model/lib/nicepay.js → esm2020/model/lib/nicepay.mjs} +0 -0
- package/{esm2015/model/lib/order.js → esm2020/model/lib/order.mjs} +0 -0
- package/{esm2015/model/lib/payment.js → esm2020/model/lib/payment.mjs} +0 -0
- package/{esm2015/model/lib/point.js → esm2020/model/lib/point.mjs} +0 -0
- package/{esm2015/model/lib/product-series.js → esm2020/model/lib/product-series.mjs} +0 -0
- package/{esm2015/model/lib/product.js → esm2020/model/lib/product.mjs} +1 -1
- package/esm2020/model/lib/promotion.mjs +79 -0
- package/{esm2015/model/lib/shipping.js → esm2020/model/lib/shipping.mjs} +0 -0
- package/{esm2015/model/lib/user.js → esm2020/model/lib/user.mjs} +0 -0
- package/{esm2015/model/public_api.js → esm2020/model/public_api.mjs} +0 -0
- package/{esm2015/model/sk-front-lib-model.js → esm2020/model/sk-front-lib-model.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -1
- package/esm2020/search-address/dialog/dialog.component.mjs +27 -0
- package/{esm2015/search-address/public_api.js → esm2020/search-address/public_api.mjs} +0 -0
- package/esm2020/search-address/sk-front-lib-search-address.mjs +5 -0
- package/esm2020/search-address/sk-search-address.directive.mjs +41 -0
- package/{esm2015/search-address/sk-search-address.model.js → esm2020/search-address/sk-search-address.model.mjs} +0 -0
- package/esm2020/search-address/sk-search-address.module.mjs +52 -0
- package/{esm2015/search-address/sk-search-address.service.js → esm2020/search-address/sk-search-address.service.mjs} +10 -8
- package/esm2020/sk-front-lib.mjs +5 -0
- package/{esm2015/uploader/public_api.js → esm2020/uploader/public_api.mjs} +0 -0
- package/esm2020/uploader/sk-front-lib-uploader.mjs +5 -0
- package/{esm2015/uploader/sk-uploader-file-item.model.js → esm2020/uploader/sk-uploader-file-item.model.mjs} +0 -0
- package/{esm2015/uploader/sk-uploader.animation.js → esm2020/uploader/sk-uploader.animation.mjs} +0 -0
- package/{esm2015/uploader/sk-uploader.class.js → esm2020/uploader/sk-uploader.class.mjs} +0 -0
- package/esm2020/uploader/sk-uploader.component.mjs +120 -0
- package/esm2020/uploader/sk-uploader.directive.mjs +44 -0
- package/esm2020/uploader/sk-uploader.module.mjs +62 -0
- package/fesm2015/sk-front-lib-api.mjs +218 -0
- package/fesm2015/sk-front-lib-api.mjs.map +1 -0
- package/fesm2015/{sk-front-lib-article.js → sk-front-lib-article.mjs} +183 -158
- package/fesm2015/sk-front-lib-article.mjs.map +1 -0
- package/fesm2015/sk-front-lib-crud.mjs +1403 -0
- package/fesm2015/sk-front-lib-crud.mjs.map +1 -0
- package/fesm2015/{sk-front-lib-google-analytics.js → sk-front-lib-google-analytics.mjs} +54 -33
- package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -0
- package/fesm2015/{sk-front-lib-image.js → sk-front-lib-image.mjs} +64 -48
- package/fesm2015/sk-front-lib-image.mjs.map +1 -0
- package/fesm2015/{sk-front-lib-model.js → sk-front-lib-model.mjs} +9 -2
- package/fesm2015/sk-front-lib-model.mjs.map +1 -0
- package/fesm2015/sk-front-lib-search-address.mjs +188 -0
- package/fesm2015/sk-front-lib-search-address.mjs.map +1 -0
- package/fesm2015/sk-front-lib-uploader.mjs +551 -0
- package/fesm2015/sk-front-lib-uploader.mjs.map +1 -0
- package/fesm2015/{sk-front-lib.js → sk-front-lib.mjs} +69 -41
- package/fesm2015/sk-front-lib.mjs.map +1 -0
- package/{fesm2015/sk-front-lib-api.js → fesm2020/sk-front-lib-api.mjs} +41 -26
- package/fesm2020/sk-front-lib-api.mjs.map +1 -0
- package/fesm2020/sk-front-lib-article.mjs +771 -0
- package/fesm2020/sk-front-lib-article.mjs.map +1 -0
- package/{fesm2015/sk-front-lib-crud.js → fesm2020/sk-front-lib-crud.mjs} +213 -236
- package/fesm2020/sk-front-lib-crud.mjs.map +1 -0
- package/fesm2020/sk-front-lib-google-analytics.mjs +336 -0
- package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -0
- package/fesm2020/sk-front-lib-image.mjs +309 -0
- package/fesm2020/sk-front-lib-image.mjs.map +1 -0
- package/fesm2020/sk-front-lib-model.mjs +1052 -0
- package/fesm2020/sk-front-lib-model.mjs.map +1 -0
- package/fesm2020/sk-front-lib-search-address.mjs +186 -0
- package/fesm2020/sk-front-lib-search-address.mjs.map +1 -0
- package/fesm2020/sk-front-lib-uploader.mjs +549 -0
- package/fesm2020/sk-front-lib-uploader.mjs.map +1 -0
- package/fesm2020/sk-front-lib.mjs +539 -0
- package/fesm2020/sk-front-lib.mjs.map +1 -0
- package/google-analytics/google-analytics-router.module.d.ts +6 -0
- package/google-analytics/google-analytics.module.d.ts +5 -0
- package/google-analytics/package.json +5 -6
- package/google-analytics/services/google-analytics.service.d.ts +3 -0
- package/google-analytics/sk-front-lib-google-analytics.d.ts +1 -0
- package/image/package.json +5 -6
- package/image/public_api.d.ts +1 -0
- package/image/sk-front-lib-image.d.ts +1 -1
- package/image/sk-image.component.d.ts +6 -3
- package/image/sk-image.module.d.ts +10 -0
- package/lib/sk-byte.pipe.d.ts +3 -0
- package/lib/sk-date-time.pipe.d.ts +3 -0
- package/lib/sk-date.pipe.d.ts +3 -0
- package/lib/sk-front-lib.module.d.ts +9 -0
- package/lib/sk-keys.pipe.d.ts +3 -0
- package/lib/sk-time.pipe.d.ts +3 -0
- package/model/lib/product.d.ts +1 -0
- package/model/lib/promotion.d.ts +12 -1
- package/model/package.json +5 -6
- package/model/sk-front-lib-model.d.ts +1 -0
- package/package.json +96 -20
- package/public-api.d.ts +1 -0
- package/search-address/dialog/dialog.component.d.ts +3 -0
- package/search-address/package.json +5 -6
- package/search-address/sk-front-lib-search-address.d.ts +1 -2
- package/search-address/sk-search-address.directive.d.ts +3 -0
- package/search-address/sk-search-address.module.d.ts +12 -0
- package/search-address/sk-search-address.service.d.ts +3 -0
- package/sk-front-lib.d.ts +1 -1
- package/uploader/package.json +5 -6
- package/uploader/sk-front-lib-uploader.d.ts +1 -1
- package/uploader/sk-uploader.component.d.ts +3 -0
- package/uploader/sk-uploader.directive.d.ts +3 -0
- package/uploader/sk-uploader.module.d.ts +14 -0
- package/api/sk-front-lib-api.metadata.json +0 -1
- package/article/sk-front-lib-article.metadata.json +0 -1
- package/bundles/sk-front-lib-api.umd.js +0 -230
- package/bundles/sk-front-lib-api.umd.js.map +0 -1
- package/bundles/sk-front-lib-api.umd.min.js +0 -2
- package/bundles/sk-front-lib-api.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-article.umd.js +0 -772
- package/bundles/sk-front-lib-article.umd.js.map +0 -1
- package/bundles/sk-front-lib-article.umd.min.js +0 -2
- package/bundles/sk-front-lib-article.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-crud.umd.js +0 -1846
- package/bundles/sk-front-lib-crud.umd.js.map +0 -1
- package/bundles/sk-front-lib-crud.umd.min.js +0 -2
- package/bundles/sk-front-lib-crud.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-google-analytics.umd.js +0 -673
- package/bundles/sk-front-lib-google-analytics.umd.js.map +0 -1
- package/bundles/sk-front-lib-google-analytics.umd.min.js +0 -16
- package/bundles/sk-front-lib-google-analytics.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-image.umd.js +0 -312
- package/bundles/sk-front-lib-image.umd.js.map +0 -1
- package/bundles/sk-front-lib-image.umd.min.js +0 -2
- package/bundles/sk-front-lib-image.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-model.umd.js +0 -1464
- package/bundles/sk-front-lib-model.umd.js.map +0 -1
- package/bundles/sk-front-lib-model.umd.min.js +0 -16
- package/bundles/sk-front-lib-model.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-search-address.umd.js +0 -182
- package/bundles/sk-front-lib-search-address.umd.js.map +0 -1
- package/bundles/sk-front-lib-search-address.umd.min.js +0 -2
- package/bundles/sk-front-lib-search-address.umd.min.js.map +0 -1
- package/bundles/sk-front-lib-uploader.umd.js +0 -534
- package/bundles/sk-front-lib-uploader.umd.js.map +0 -1
- package/bundles/sk-front-lib-uploader.umd.min.js +0 -2
- package/bundles/sk-front-lib-uploader.umd.min.js.map +0 -1
- package/bundles/sk-front-lib.umd.js +0 -546
- package/bundles/sk-front-lib.umd.js.map +0 -1
- package/bundles/sk-front-lib.umd.min.js +0 -2
- package/bundles/sk-front-lib.umd.min.js.map +0 -1
- package/crud/sk-front-lib-crud.metadata.json +0 -1
- package/esm2015/api/sk-api.module.js +0 -24
- package/esm2015/api/sk-api.service.js +0 -144
- package/esm2015/article/sk-article-editor-server.component.js +0 -54
- package/esm2015/article/sk-article-editor.component.js +0 -85
- package/esm2015/article/sk-article-server.module.js +0 -26
- package/esm2015/article/sk-article.module.js +0 -23
- package/esm2015/article/sk-article.service.js +0 -235
- package/esm2015/article/sk-froala-editor.directive.js +0 -320
- package/esm2015/crud/sk-account.service.js +0 -38
- package/esm2015/crud/sk-auth-admin.guard.js +0 -35
- package/esm2015/crud/sk-auth.guard.js +0 -35
- package/esm2015/crud/sk-auth.service.js +0 -71
- package/esm2015/crud/sk-board.service.js +0 -55
- package/esm2015/crud/sk-brand.service.js +0 -47
- package/esm2015/crud/sk-cart.service.js +0 -260
- package/esm2015/crud/sk-category.service.js +0 -64
- package/esm2015/crud/sk-comment.service.js +0 -44
- package/esm2015/crud/sk-config.service.js +0 -33
- package/esm2015/crud/sk-contact.service.js +0 -40
- package/esm2015/crud/sk-coupon.service.js +0 -63
- package/esm2015/crud/sk-document.service.js +0 -96
- package/esm2015/crud/sk-etc.service.js +0 -27
- package/esm2015/crud/sk-file.service.js +0 -38
- package/esm2015/crud/sk-front-lib-crud.js +0 -6
- package/esm2015/crud/sk-keyword.service.js +0 -47
- package/esm2015/crud/sk-order.service.js +0 -134
- package/esm2015/crud/sk-point.service.js +0 -46
- package/esm2015/crud/sk-product.service.js +0 -154
- package/esm2015/crud/sk-promotion.service.js +0 -82
- package/esm2015/crud/sk-search.service.js +0 -26
- package/esm2015/crud/sk-store.service.js +0 -48
- package/esm2015/crud/sk-user.service.js +0 -70
- package/esm2015/google-analytics/google-analytics-router.module.js +0 -19
- package/esm2015/google-analytics/google-analytics.module.js +0 -33
- package/esm2015/google-analytics/initializers/google-analytics-router.initializer.js +0 -25
- package/esm2015/google-analytics/initializers/google-analytics.initializer.js +0 -47
- package/esm2015/google-analytics/services/google-analytics.service.js +0 -199
- package/esm2015/image/public_api.js +0 -2
- package/esm2015/image/sk-front-lib-image.js +0 -6
- package/esm2015/image/sk-image.component.js +0 -258
- package/esm2015/image/sk-image.module.js +0 -28
- package/esm2015/lib/sk-byte.pipe.js +0 -14
- package/esm2015/lib/sk-date-time.pipe.js +0 -12
- package/esm2015/lib/sk-date.pipe.js +0 -12
- package/esm2015/lib/sk-front-lib.module.js +0 -29
- package/esm2015/lib/sk-keys.pipe.js +0 -19
- package/esm2015/lib/sk-time.pipe.js +0 -12
- package/esm2015/model/lib/promotion.js +0 -72
- package/esm2015/search-address/dialog/dialog.component.js +0 -28
- package/esm2015/search-address/sk-front-lib-search-address.js +0 -7
- package/esm2015/search-address/sk-search-address.directive.js +0 -39
- package/esm2015/search-address/sk-search-address.module.js +0 -34
- package/esm2015/sk-front-lib.js +0 -6
- package/esm2015/uploader/sk-front-lib-uploader.js +0 -6
- package/esm2015/uploader/sk-uploader.component.js +0 -106
- package/esm2015/uploader/sk-uploader.directive.js +0 -40
- package/esm2015/uploader/sk-uploader.module.js +0 -39
- package/fesm2015/sk-front-lib-api.js.map +0 -1
- package/fesm2015/sk-front-lib-article.js.map +0 -1
- package/fesm2015/sk-front-lib-crud.js.map +0 -1
- package/fesm2015/sk-front-lib-google-analytics.js.map +0 -1
- package/fesm2015/sk-front-lib-image.js.map +0 -1
- package/fesm2015/sk-front-lib-model.js.map +0 -1
- package/fesm2015/sk-front-lib-search-address.js +0 -166
- package/fesm2015/sk-front-lib-search-address.js.map +0 -1
- package/fesm2015/sk-front-lib-uploader.js +0 -510
- package/fesm2015/sk-front-lib-uploader.js.map +0 -1
- package/fesm2015/sk-front-lib.js.map +0 -1
- package/google-analytics/sk-front-lib-google-analytics.metadata.json +0 -1
- package/image/sk-front-lib-image.metadata.json +0 -1
- package/model/sk-front-lib-model.metadata.json +0 -1
- package/search-address/sk-front-lib-search-address.metadata.json +0 -1
- package/sk-front-lib.metadata.json +0 -1
- package/uploader/sk-front-lib-uploader.metadata.json +0 -1
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { APP_INITIALIZER, isDevMode, PLATFORM_ID } from "@angular/core";
|
|
3
|
-
import { SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN } from "../tokens/google-analytics-settings-token";
|
|
4
|
-
import { isPlatformServer } from "@angular/common";
|
|
5
|
-
export const SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER = {
|
|
6
|
-
provide: APP_INITIALIZER,
|
|
7
|
-
multi: true,
|
|
8
|
-
useFactory: GoogleAnalyticsInitializer,
|
|
9
|
-
deps: [
|
|
10
|
-
SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,
|
|
11
|
-
PLATFORM_ID
|
|
12
|
-
]
|
|
13
|
-
};
|
|
14
|
-
export function GoogleAnalyticsInitializer(_settings, platform) {
|
|
15
|
-
return () => __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
if (!_settings.trackingCode) {
|
|
17
|
-
if (!isDevMode()) {
|
|
18
|
-
console.error('Empty tracking code for Google Analytics. Make sure to provide one when initializing SkGoogleAnalyticsModule.');
|
|
19
|
-
}
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (isPlatformServer(platform)) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
// Set default ga.js uri
|
|
26
|
-
_settings.uri = _settings.uri || `https://www.googletagmanager.com/gtag/js?id=${_settings.trackingCode}`;
|
|
27
|
-
// these commands should run first!
|
|
28
|
-
const initialCommands = [
|
|
29
|
-
{ command: 'js', values: [new Date()] },
|
|
30
|
-
{ command: 'config', values: [_settings.trackingCode] }
|
|
31
|
-
];
|
|
32
|
-
_settings.initCommands = [...initialCommands, ...(_settings.initCommands || [])];
|
|
33
|
-
window['dataLayer'] = window['dataLayer'] || [];
|
|
34
|
-
window['gtag'] = window['gtag'] || function () {
|
|
35
|
-
window['dataLayer'].push(arguments);
|
|
36
|
-
};
|
|
37
|
-
for (const command of _settings.initCommands) {
|
|
38
|
-
window['gtag'](command.command, ...command.values);
|
|
39
|
-
}
|
|
40
|
-
const s = document.createElement('script');
|
|
41
|
-
s.async = true;
|
|
42
|
-
s.src = _settings.uri;
|
|
43
|
-
const head = document.getElementsByTagName('head')[0];
|
|
44
|
-
head.appendChild(s);
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5pbml0aWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9nb29nbGUtYW5hbHl0aWNzL3NyYy9pbml0aWFsaXplcnMvZ29vZ2xlLWFuYWx5dGljcy5pbml0aWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGVBQWUsRUFBVSxTQUFTLEVBQUUsV0FBVyxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRTdGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFhO0lBQzlELE9BQU8sRUFBRSxlQUFlO0lBQ3hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLDBCQUEwQjtJQUN0QyxJQUFJLEVBQUU7UUFDRixrQ0FBa0M7UUFDbEMsV0FBVztLQUNkO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUFxQyxFQUNyQyxRQUFnQjtJQUN2RCxPQUFPLEdBQVMsRUFBRTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLCtHQUErRyxDQUFDLENBQUM7YUFDbEk7WUFFRCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUVELHdCQUF3QjtRQUN4QixTQUFTLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksK0NBQStDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6RyxtQ0FBbUM7UUFDbkMsTUFBTSxlQUFlLEdBQXFDO1lBQ3RELEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUM7WUFDckMsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBQztTQUN4RCxDQUFDO1FBRUYsU0FBUyxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFakYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUVGLEtBQUssTUFBTSxPQUFPLElBQUksU0FBUyxDQUFDLFlBQVksRUFBRTtZQUMxQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0RDtRQUVELE1BQU0sQ0FBQyxHQUFzQixRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFvQixRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUEsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgSW5qZWN0LCBpc0Rldk1vZGUsIFBMQVRGT1JNX0lELCBQcm92aWRlcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SVNrR29vZ2xlQW5hbHl0aWNzU2V0dGluZ3N9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2dvb2dsZS1hbmFseXRpY3Mtc2V0dGluZ3NcIjtcbmltcG9ydCB7U0tfR09PR0xFX0FOQUxZVElDU19TRVRUSU5HU19UT0tFTn0gZnJvbSBcIi4uL3Rva2Vucy9nb29nbGUtYW5hbHl0aWNzLXNldHRpbmdzLXRva2VuXCI7XG5pbXBvcnQge0lTa0dvb2dsZUFuYWx5dGljc0NvbW1hbmR9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2dvb2dsZS1hbmFseXRpY3MtY29tbWFuZFwiO1xuaW1wb3J0IHtpc1BsYXRmb3JtU2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmV4cG9ydCBjb25zdCBTS19HT09HTEVfQU5BTFlUSUNTX0lOSVRJQUxJWkVSX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeTogR29vZ2xlQW5hbHl0aWNzSW5pdGlhbGl6ZXIsXG4gICAgZGVwczogW1xuICAgICAgICBTS19HT09HTEVfQU5BTFlUSUNTX1NFVFRJTkdTX1RPS0VOLFxuICAgICAgICBQTEFURk9STV9JRFxuICAgIF1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBHb29nbGVBbmFseXRpY3NJbml0aWFsaXplcihfc2V0dGluZ3M6IElTa0dvb2dsZUFuYWx5dGljc1NldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtOiBPYmplY3QpIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIV9zZXR0aW5ncy50cmFja2luZ0NvZGUpIHtcbiAgICAgICAgICAgIGlmICghaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFbXB0eSB0cmFja2luZyBjb2RlIGZvciBHb29nbGUgQW5hbHl0aWNzLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBvbmUgd2hlbiBpbml0aWFsaXppbmcgU2tHb29nbGVBbmFseXRpY3NNb2R1bGUuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgZ2EuanMgdXJpXG4gICAgICAgIF9zZXR0aW5ncy51cmkgPSBfc2V0dGluZ3MudXJpIHx8IGBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPSR7X3NldHRpbmdzLnRyYWNraW5nQ29kZX1gO1xuXG4gICAgICAgIC8vIHRoZXNlIGNvbW1hbmRzIHNob3VsZCBydW4gZmlyc3QhXG4gICAgICAgIGNvbnN0IGluaXRpYWxDb21tYW5kczogQXJyYXk8SVNrR29vZ2xlQW5hbHl0aWNzQ29tbWFuZD4gPSBbXG4gICAgICAgICAgICB7Y29tbWFuZDogJ2pzJywgdmFsdWVzOiBbbmV3IERhdGUoKV19LFxuICAgICAgICAgICAge2NvbW1hbmQ6ICdjb25maWcnLCB2YWx1ZXM6IFtfc2V0dGluZ3MudHJhY2tpbmdDb2RlXX1cbiAgICAgICAgXTtcblxuICAgICAgICBfc2V0dGluZ3MuaW5pdENvbW1hbmRzID0gWy4uLmluaXRpYWxDb21tYW5kcywgLi4uKF9zZXR0aW5ncy5pbml0Q29tbWFuZHMgfHwgW10pXTtcblxuICAgICAgICB3aW5kb3dbJ2RhdGFMYXllciddID0gd2luZG93WydkYXRhTGF5ZXInXSB8fCBbXTtcbiAgICAgICAgd2luZG93WydndGFnJ10gPSB3aW5kb3dbJ2d0YWcnXSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB3aW5kb3dbJ2RhdGFMYXllciddLnB1c2goYXJndW1lbnRzKTtcbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2YgX3NldHRpbmdzLmluaXRDb21tYW5kcykge1xuICAgICAgICAgICAgd2luZG93WydndGFnJ10oY29tbWFuZC5jb21tYW5kLCAuLi5jb21tYW5kLnZhbHVlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzOiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgcy5zcmMgPSBfc2V0dGluZ3MudXJpO1xuXG4gICAgICAgIGNvbnN0IGhlYWQ6IEhUTUxIZWFkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQocyk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN } from "../tokens/google-analytics-settings-token";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../tokens/google-analytics-settings-token";
|
|
5
|
-
export class SkGoogleAnalyticsService {
|
|
6
|
-
constructor(_trackingId) {
|
|
7
|
-
this._trackingId = _trackingId;
|
|
8
|
-
}
|
|
9
|
-
throw(err) {
|
|
10
|
-
if (console && console.error) {
|
|
11
|
-
console.error(err);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Call native GA Tag
|
|
16
|
-
*
|
|
17
|
-
* @param action config|event
|
|
18
|
-
* @param command Action specialization
|
|
19
|
-
* @param options Command configuration
|
|
20
|
-
*/
|
|
21
|
-
gtag(action, command, ...options) {
|
|
22
|
-
try {
|
|
23
|
-
window['gtag'](action, command, ...options);
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
this.throw(err);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Send an event trigger to GA. It is the same as call:
|
|
31
|
-
* ```js
|
|
32
|
-
* gtag('event', 'video_auto_play_start', {
|
|
33
|
-
* 'event_label': 'My promotional video',
|
|
34
|
-
* 'event_category': 'video_auto_play'
|
|
35
|
-
* });
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* @param action 'video_auto_play_start'
|
|
39
|
-
* @param category 'video_auto_play'
|
|
40
|
-
* @param label 'My promotional video'
|
|
41
|
-
* @param value An value to measure something
|
|
42
|
-
*/
|
|
43
|
-
event(action, category, label, value, interaction) {
|
|
44
|
-
try {
|
|
45
|
-
if (window['gtag']) {
|
|
46
|
-
const opt = {};
|
|
47
|
-
if (category) {
|
|
48
|
-
opt['event_category'] = category;
|
|
49
|
-
}
|
|
50
|
-
if (label) {
|
|
51
|
-
opt['event_label'] = label;
|
|
52
|
-
}
|
|
53
|
-
if (value) {
|
|
54
|
-
opt['value'] = value;
|
|
55
|
-
}
|
|
56
|
-
if (interaction !== undefined) {
|
|
57
|
-
opt['interaction'] = interaction;
|
|
58
|
-
}
|
|
59
|
-
this.gtag('event', action, opt);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
this.throw(error);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
purchase(data) {
|
|
67
|
-
try {
|
|
68
|
-
if (window['gtag']) {
|
|
69
|
-
this.gtag('event', 'purchase', data);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
this.throw(error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Send an page view event. This is the same as
|
|
78
|
-
*
|
|
79
|
-
* ```js
|
|
80
|
-
* gtag('config', 'GA_TRACKING_ID', {
|
|
81
|
-
* 'page_title' : 'Homepage',
|
|
82
|
-
* 'page_path': '/home'
|
|
83
|
-
* });
|
|
84
|
-
* ```
|
|
85
|
-
*
|
|
86
|
-
* The tracking ID is injected automatically by Inject Token NGX_GOOGLE_ANALYTICS_SETTINGS_TOKEN
|
|
87
|
-
*
|
|
88
|
-
* @param path /home
|
|
89
|
-
* @param title Homepage
|
|
90
|
-
* @param location '{ page_location }'
|
|
91
|
-
* @param options '{ ... custom dimentions }'
|
|
92
|
-
*/
|
|
93
|
-
pageView(path, title, location, options) {
|
|
94
|
-
try {
|
|
95
|
-
if (window['gtag']) {
|
|
96
|
-
const opt = {};
|
|
97
|
-
if (path) {
|
|
98
|
-
opt['page_path'] = path;
|
|
99
|
-
}
|
|
100
|
-
if (title) {
|
|
101
|
-
opt['page_title'] = title;
|
|
102
|
-
}
|
|
103
|
-
if (location) {
|
|
104
|
-
opt['page_location'] = location;
|
|
105
|
-
}
|
|
106
|
-
if (options) {
|
|
107
|
-
Object.assign(opt, options);
|
|
108
|
-
}
|
|
109
|
-
this.gtag('config', this._trackingId.trackingCode, opt);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
this.throw(error);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Send an evento to report a App Page View. It is the same as
|
|
118
|
-
*
|
|
119
|
-
* ```js
|
|
120
|
-
* gtag('event', 'screen_view', {
|
|
121
|
-
* 'app_name': 'myAppName',
|
|
122
|
-
* 'screen_name' : 'Home'
|
|
123
|
-
* });
|
|
124
|
-
*
|
|
125
|
-
* ```
|
|
126
|
-
*
|
|
127
|
-
* @param screen 'screen_name'
|
|
128
|
-
* @param name 'app_name'
|
|
129
|
-
* @param appId 'app_id'
|
|
130
|
-
* @param appVersion 'app_version'
|
|
131
|
-
* @param installerId 'app_installer_id'
|
|
132
|
-
*/
|
|
133
|
-
appView(screen, appName, appId, appVersion, installerId) {
|
|
134
|
-
try {
|
|
135
|
-
if (window['gtag']) {
|
|
136
|
-
const opt = {};
|
|
137
|
-
if (screen) {
|
|
138
|
-
opt['screen_name'] = screen;
|
|
139
|
-
}
|
|
140
|
-
if (appName) {
|
|
141
|
-
opt['app_name'] = appName;
|
|
142
|
-
}
|
|
143
|
-
if (appId) {
|
|
144
|
-
opt['app_id'] = appId;
|
|
145
|
-
}
|
|
146
|
-
if (appVersion) {
|
|
147
|
-
opt['app_version'] = appVersion;
|
|
148
|
-
}
|
|
149
|
-
if (installerId) {
|
|
150
|
-
opt['app_installer_id'] = installerId;
|
|
151
|
-
}
|
|
152
|
-
this.gtag('event', 'screen_view', opt);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
this.throw(error);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Send an event to GA to report an application error. It is the same as
|
|
161
|
-
*
|
|
162
|
-
* ```js
|
|
163
|
-
* gtag('event', 'exception', {
|
|
164
|
-
* 'description': 'error_description',
|
|
165
|
-
* 'fatal': false // set to true if the error is fatal
|
|
166
|
-
* });
|
|
167
|
-
* ```
|
|
168
|
-
*
|
|
169
|
-
* @param description 'error_description'
|
|
170
|
-
* @param fatal set to true if the error is fatal
|
|
171
|
-
*/
|
|
172
|
-
exception(description, fatal) {
|
|
173
|
-
try {
|
|
174
|
-
if (window['gtag']) {
|
|
175
|
-
const opt = {};
|
|
176
|
-
if (description) {
|
|
177
|
-
opt['description'] = description;
|
|
178
|
-
}
|
|
179
|
-
if (fatal) {
|
|
180
|
-
opt['fatal'] = fatal;
|
|
181
|
-
}
|
|
182
|
-
this.gtag('event', 'exception', opt);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
this.throw(error);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
SkGoogleAnalyticsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkGoogleAnalyticsService_Factory() { return new SkGoogleAnalyticsService(i0.ɵɵinject(i1.SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN)); }, token: SkGoogleAnalyticsService, providedIn: "root" });
|
|
191
|
-
SkGoogleAnalyticsService.decorators = [
|
|
192
|
-
{ type: Injectable, args: [{
|
|
193
|
-
providedIn: 'root'
|
|
194
|
-
},] }
|
|
195
|
-
];
|
|
196
|
-
SkGoogleAnalyticsService.ctorParameters = () => [
|
|
197
|
-
{ type: undefined, decorators: [{ type: Inject, args: [SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,] }] }
|
|
198
|
-
];
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2dvb2dsZS1hbmFseXRpY3Mvc3JjL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBTzdGLE1BQU0sT0FBTyx3QkFBd0I7SUFFakMsWUFBa0UsV0FBdUM7UUFBdkMsZ0JBQVcsR0FBWCxXQUFXLENBQTRCO0lBQ3pHLENBQUM7SUFFUyxLQUFLLENBQUMsR0FBVTtRQUN0QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLE1BQWMsRUFBRSxPQUFlLEVBQUUsR0FBRyxPQUFtQjtRQUN4RCxJQUFJO1lBQ0EsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsS0FBSyxDQUFDLE1BQXlCLEVBQUUsUUFBaUIsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLFdBQXFCO1FBQ3JHLElBQUk7WUFDQSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNmLElBQUksUUFBUSxFQUFF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LEdBQUcsQ0FBQyxDQUFDO2FBQzFDO1NBQ0o7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsU0FBUyxDQUFDLFdBQW9CLEVBQUUsS0FBZTtRQUMzQyxJQUFJO1lBQ0EsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2hCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDZixJQUFJLFdBQVcsRUFBRTtvQkFDYixHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO2lCQUNwQztnQkFDRCxJQUFJLEtBQUssRUFBRTtvQkFDUCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUN4QjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDeEM7U0FDSjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtJQUNMLENBQUM7Ozs7WUEzTEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7NENBR2dCLE1BQU0sU0FBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NLX0dPT0dMRV9BTkFMWVRJQ1NfU0VUVElOR1NfVE9LRU59IGZyb20gXCIuLi90b2tlbnMvZ29vZ2xlLWFuYWx5dGljcy1zZXR0aW5ncy10b2tlblwiO1xuaW1wb3J0IHtJU2tHb29nbGVBbmFseXRpY3NTZXR0aW5nc30gZnJvbSBcIi4uL2ludGVyZmFjZXMvZ29vZ2xlLWFuYWx5dGljcy1zZXR0aW5nc1wiO1xuaW1wb3J0IHtHYUFjdGlvbn0gZnJvbSBcIi4uL3R5cGVzL2dhLWFjdGlvbi50eXBlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2tHb29nbGVBbmFseXRpY3NTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU0tfR09PR0xFX0FOQUxZVElDU19TRVRUSU5HU19UT0tFTikgcHJvdGVjdGVkIF90cmFja2luZ0lkOiBJU2tHb29nbGVBbmFseXRpY3NTZXR0aW5ncykge1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0aHJvdyhlcnI6IEVycm9yKSB7XG4gICAgICAgIGlmIChjb25zb2xlICYmIGNvbnNvbGUuZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGwgbmF0aXZlIEdBIFRhZ1xuICAgICAqXG4gICAgICogQHBhcmFtIGFjdGlvbiBjb25maWd8ZXZlbnRcbiAgICAgKiBAcGFyYW0gY29tbWFuZCBBY3Rpb24gc3BlY2lhbGl6YXRpb25cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb21tYW5kIGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBndGFnKGFjdGlvbjogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIC4uLm9wdGlvbnM6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHdpbmRvd1snZ3RhZyddKGFjdGlvbiwgY29tbWFuZCwgLi4ub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy50aHJvdyhlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZCBhbiBldmVudCB0cmlnZ2VyIHRvIEdBLiBJdCBpcyB0aGUgc2FtZSBhcyBjYWxsOlxuICAgICAqIGBgYGpzXG4gICAgICogZ3RhZygnZXZlbnQnLCAndmlkZW9fYXV0b19wbGF5X3N0YXJ0Jywge1xuICAgICAqICAgJ2V2ZW50X2xhYmVsJzogJ015IHByb21vdGlvbmFsIHZpZGVvJyxcbiAgICAgKiAgICdldmVudF9jYXRlZ29yeSc6ICd2aWRlb19hdXRvX3BsYXknXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWN0aW9uICd2aWRlb19hdXRvX3BsYXlfc3RhcnQnXG4gICAgICogQHBhcmFtIGNhdGVnb3J5ICd2aWRlb19hdXRvX3BsYXknXG4gICAgICogQHBhcmFtIGxhYmVsICdNeSBwcm9tb3Rpb25hbCB2aWRlbydcbiAgICAgKiBAcGFyYW0gdmFsdWUgQW4gdmFsdWUgdG8gbWVhc3VyZSBzb21ldGhpbmdcbiAgICAgKi9cbiAgICBldmVudChhY3Rpb246IEdhQWN0aW9uIHwgc3RyaW5nLCBjYXRlZ29yeT86IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyLCBpbnRlcmFjdGlvbj86IGJvb2xlYW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh3aW5kb3dbJ2d0YWcnXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdCA9IHt9O1xuICAgICAgICAgICAgICAgIGlmIChjYXRlZ29yeSkge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ2V2ZW50X2NhdGVnb3J5J10gPSBjYXRlZ29yeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFsnZXZlbnRfbGFiZWwnXSA9IGxhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0Wyd2YWx1ZSddID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbnRlcmFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFsnaW50ZXJhY3Rpb24nXSA9IGludGVyYWN0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmd0YWcoJ2V2ZW50JywgYWN0aW9uIGFzIHN0cmluZywgb3B0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudGhyb3coZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVyY2hhc2UoZGF0YSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHdpbmRvd1snZ3RhZyddKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ndGFnKCdldmVudCcsICdwdXJjaGFzZScsIGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy50aHJvdyhlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGFuIHBhZ2UgdmlldyBldmVudC4gVGhpcyBpcyB0aGUgc2FtZSBhc1xuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiBndGFnKCdjb25maWcnLCAnR0FfVFJBQ0tJTkdfSUQnLCB7XG4gICAgICogICAncGFnZV90aXRsZScgOiAnSG9tZXBhZ2UnLFxuICAgICAqICAgJ3BhZ2VfcGF0aCc6ICcvaG9tZSdcbiAgICAgKiB9KTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIFRoZSB0cmFja2luZyBJRCBpcyBpbmplY3RlZCBhdXRvbWF0aWNhbGx5IGJ5IEluamVjdCBUb2tlbiBOR1hfR09PR0xFX0FOQUxZVElDU19TRVRUSU5HU19UT0tFTlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggL2hvbWVcbiAgICAgKiBAcGFyYW0gdGl0bGUgSG9tZXBhZ2VcbiAgICAgKiBAcGFyYW0gbG9jYXRpb24gJ3sgcGFnZV9sb2NhdGlvbiB9J1xuICAgICAqIEBwYXJhbSBvcHRpb25zICd7IC4uLiBjdXN0b20gZGltZW50aW9ucyB9J1xuICAgICAqL1xuICAgIHBhZ2VWaWV3KHBhdGg/OiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBsb2NhdGlvbj86IHN0cmluZywgb3B0aW9ucz86IE9iamVjdCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHdpbmRvd1snZ3RhZyddKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0ID0ge307XG4gICAgICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0WydwYWdlX3BhdGgnXSA9IHBhdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ3BhZ2VfdGl0bGUnXSA9IHRpdGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0WydwYWdlX2xvY2F0aW9uJ10gPSBsb2NhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihvcHQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmd0YWcoJ2NvbmZpZycsIHRoaXMuX3RyYWNraW5nSWQudHJhY2tpbmdDb2RlLCBvcHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy50aHJvdyhlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGFuIGV2ZW50byB0byByZXBvcnQgYSBBcHAgUGFnZSBWaWV3LiBJdCBpcyB0aGUgc2FtZSBhc1xuICAgICAqXG4gICAgICogYGBganNcbiAgICAgKiBndGFnKCdldmVudCcsICdzY3JlZW5fdmlldycsIHtcbiAgICAgKiAgICdhcHBfbmFtZSc6ICdteUFwcE5hbWUnLFxuICAgICAqICAgJ3NjcmVlbl9uYW1lJyA6ICdIb21lJ1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2NyZWVuICdzY3JlZW5fbmFtZSdcbiAgICAgKiBAcGFyYW0gbmFtZSAnYXBwX25hbWUnXG4gICAgICogQHBhcmFtIGFwcElkICdhcHBfaWQnXG4gICAgICogQHBhcmFtIGFwcFZlcnNpb24gJ2FwcF92ZXJzaW9uJ1xuICAgICAqIEBwYXJhbSBpbnN0YWxsZXJJZCAnYXBwX2luc3RhbGxlcl9pZCdcbiAgICAgKi9cbiAgICBhcHBWaWV3KHNjcmVlbjogc3RyaW5nLCBhcHBOYW1lOiBzdHJpbmcsIGFwcElkPzogc3RyaW5nLCBhcHBWZXJzaW9uPzogc3RyaW5nLCBpbnN0YWxsZXJJZD86IHN0cmluZykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHdpbmRvd1snZ3RhZyddKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0ID0ge307XG4gICAgICAgICAgICAgICAgaWYgKHNjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ3NjcmVlbl9uYW1lJ10gPSBzY3JlZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhcHBOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFsnYXBwX25hbWUnXSA9IGFwcE5hbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhcHBJZCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ2FwcF9pZCddID0gYXBwSWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhcHBWZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFsnYXBwX3ZlcnNpb24nXSA9IGFwcFZlcnNpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbnN0YWxsZXJJZCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ2FwcF9pbnN0YWxsZXJfaWQnXSA9IGluc3RhbGxlcklkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmd0YWcoJ2V2ZW50JywgJ3NjcmVlbl92aWV3Jywgb3B0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudGhyb3coZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZCBhbiBldmVudCB0byBHQSB0byByZXBvcnQgYW4gYXBwbGljYXRpb24gZXJyb3IuIEl0IGlzIHRoZSBzYW1lIGFzXG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqIGd0YWcoJ2V2ZW50JywgJ2V4Y2VwdGlvbicsIHtcbiAgICAgKiAgICdkZXNjcmlwdGlvbic6ICdlcnJvcl9kZXNjcmlwdGlvbicsXG4gICAgICogICAnZmF0YWwnOiBmYWxzZSAgIC8vIHNldCB0byB0cnVlIGlmIHRoZSBlcnJvciBpcyBmYXRhbFxuICAgICAqIH0pO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uICdlcnJvcl9kZXNjcmlwdGlvbidcbiAgICAgKiBAcGFyYW0gZmF0YWwgc2V0IHRvIHRydWUgaWYgdGhlIGVycm9yIGlzIGZhdGFsXG4gICAgICovXG4gICAgZXhjZXB0aW9uKGRlc2NyaXB0aW9uPzogc3RyaW5nLCBmYXRhbD86IGJvb2xlYW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh3aW5kb3dbJ2d0YWcnXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdCA9IHt9O1xuICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBvcHRbJ2Rlc2NyaXB0aW9uJ10gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGZhdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdFsnZmF0YWwnXSA9IGZhdGFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmd0YWcoJ2V2ZW50JywgJ2V4Y2VwdGlvbicsIG9wdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnRocm93KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './sk-image.module';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9pbWFnZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zay1pbWFnZS5tb2R1bGUnO1xuZXhwb3J0IHtTa0ltYWdlT3B0aW9uc30gZnJvbSAnLi9zay1pbWFnZS5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
export { SkImageComponent as ɵa } from './sk-image.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stZnJvbnQtbGliLWltYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2ltYWdlL3NyYy9zay1mcm9udC1saWItaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7U2tJbWFnZUNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vc2staW1hZ2UuY29tcG9uZW50JzsiXX0=
|
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { Platform } from '@angular/cdk/platform';
|
|
3
|
-
import { HttpParams } from '@angular/common/http';
|
|
4
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
5
|
-
import Viewer from 'viewerjs';
|
|
6
|
-
import { SkApiService } from 'sk-front-lib/api';
|
|
7
|
-
export class SkImageComponent {
|
|
8
|
-
constructor(cdRef, platform, dialog, apiService) {
|
|
9
|
-
this.cdRef = cdRef;
|
|
10
|
-
this.platform = platform;
|
|
11
|
-
this.dialog = dialog;
|
|
12
|
-
this.apiService = apiService;
|
|
13
|
-
this.mode = 'imgId';
|
|
14
|
-
this.defaultOption = {
|
|
15
|
-
mode: 'img',
|
|
16
|
-
width: 0,
|
|
17
|
-
height: 0,
|
|
18
|
-
resizeType: 'ratio_crop',
|
|
19
|
-
resizeBgColor: '',
|
|
20
|
-
filter: '',
|
|
21
|
-
blur: 0,
|
|
22
|
-
clickable: false,
|
|
23
|
-
coverBackground: null,
|
|
24
|
-
previewColor: ''
|
|
25
|
-
};
|
|
26
|
-
this.currentOption = {};
|
|
27
|
-
this.apiCompleted = false;
|
|
28
|
-
this.isVisible = false;
|
|
29
|
-
this.src = null;
|
|
30
|
-
this.imgId = null;
|
|
31
|
-
this.skfile = null;
|
|
32
|
-
this.option = {};
|
|
33
|
-
this.alt = '';
|
|
34
|
-
this.imageClass = [];
|
|
35
|
-
this.waitSrc = null;
|
|
36
|
-
this.activeSrc = null;
|
|
37
|
-
this.originalSrc = null;
|
|
38
|
-
this.ratio = 100;
|
|
39
|
-
this.backgroundColor = '#fff';
|
|
40
|
-
this.imageOpacity = 0;
|
|
41
|
-
this.viewerOptions = {
|
|
42
|
-
navbar: false,
|
|
43
|
-
backdrop: 'static',
|
|
44
|
-
className: 'sk-custom-viewerjs',
|
|
45
|
-
toolbar: {
|
|
46
|
-
zoomIn: 1,
|
|
47
|
-
zoomOut: 1,
|
|
48
|
-
oneToOne: 1,
|
|
49
|
-
reset: 1,
|
|
50
|
-
},
|
|
51
|
-
movable: true,
|
|
52
|
-
rotatable: false,
|
|
53
|
-
toggleOnDblclick: false,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
// -----------------------------------------------------------------------------------------------------
|
|
57
|
-
// @ Accessors
|
|
58
|
-
// ------------------------------------------1-----------------------------------------------------------
|
|
59
|
-
get containerStyle() {
|
|
60
|
-
if (this.mode === 'imgId' || this.mode === 'skfile') {
|
|
61
|
-
return {
|
|
62
|
-
'padding-bottom': this.ratio + '%',
|
|
63
|
-
height: '0px',
|
|
64
|
-
overflow: 'hidden',
|
|
65
|
-
'background-color': this.backgroundColor,
|
|
66
|
-
cursor: this.currentOption.clickable ? 'pointer' : 'inherit',
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
return {
|
|
71
|
-
'padding-bottom': '0px',
|
|
72
|
-
height: 'auto',
|
|
73
|
-
overflow: 'hidden',
|
|
74
|
-
'background-color': this.backgroundColor
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
get imageStyle() {
|
|
79
|
-
if (this.mode === 'imgId') {
|
|
80
|
-
return {
|
|
81
|
-
position: 'absolute',
|
|
82
|
-
width: '100%',
|
|
83
|
-
top: '0',
|
|
84
|
-
left: '0',
|
|
85
|
-
right: '0',
|
|
86
|
-
bottom: '0',
|
|
87
|
-
opacity: this.imageOpacity
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return {
|
|
92
|
-
position: 'relative',
|
|
93
|
-
width: '100%',
|
|
94
|
-
opacity: this.imageOpacity
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
get coverStyle() {
|
|
99
|
-
if (this.option.coverBackground) {
|
|
100
|
-
return {
|
|
101
|
-
'background': this.option.coverBackground,
|
|
102
|
-
opacity: this.imageOpacity
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return {};
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// -----------------------------------------------------------------------------------------------------
|
|
110
|
-
// @ Lifecycle hooks
|
|
111
|
-
// -----------------------------------------------------------------------------------------------------
|
|
112
|
-
ngOnChanges(changes) {
|
|
113
|
-
this._init();
|
|
114
|
-
/**
|
|
115
|
-
* skfile, imgId, src 순서로 우선권을 가진다.
|
|
116
|
-
*/
|
|
117
|
-
if (!!changes.skfile && !!changes.skfile.currentValue) {
|
|
118
|
-
this.mode = 'skfile';
|
|
119
|
-
this.imgId = this.skfile.id;
|
|
120
|
-
this.loadImageByFile();
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
if (!!changes.imgId) {
|
|
124
|
-
this.mode = 'imgId';
|
|
125
|
-
this.loadImageById();
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if (!!changes.src) {
|
|
129
|
-
this.mode = 'src';
|
|
130
|
-
this.loadImageBySrc();
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
ngAfterViewInit() {
|
|
135
|
-
}
|
|
136
|
-
ngOnDestroy() {
|
|
137
|
-
if (this.viewerInstance) {
|
|
138
|
-
this.viewerInstance.destroy();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// -----------------------------------------------------------------------------------------------------
|
|
142
|
-
// @ Public methods
|
|
143
|
-
// -----------------------------------------------------------------------------------------------------
|
|
144
|
-
loadImageByFile() {
|
|
145
|
-
this.waitSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}?${this.getHttpParam().toString()}`;
|
|
146
|
-
this.originalSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}`;
|
|
147
|
-
const metadata = this.skfile;
|
|
148
|
-
if (this.currentOption.width > 0 && this.currentOption.height > 0) {
|
|
149
|
-
this.ratio = this.currentOption.height / this.currentOption.width * 100;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
this.ratio = metadata.height / metadata.width * 100;
|
|
153
|
-
}
|
|
154
|
-
this.backgroundColor = !!this.currentOption.previewColor ? this.currentOption.previewColor :
|
|
155
|
-
(this.currentOption.filter === 'gray' ? '#fff' : metadata.color);
|
|
156
|
-
this.apiCompleted = true;
|
|
157
|
-
this.cdRef.markForCheck();
|
|
158
|
-
this.startImageLoad();
|
|
159
|
-
}
|
|
160
|
-
loadImageById() {
|
|
161
|
-
this.apiService.get(`/api/public/images/${this.imgId}/metadata`)
|
|
162
|
-
.subscribe(result => {
|
|
163
|
-
this.skfile = result.data;
|
|
164
|
-
this.loadImageByFile();
|
|
165
|
-
}, error => {
|
|
166
|
-
this.showFallbackImage();
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
loadImageBySrc() {
|
|
170
|
-
this.waitSrc = this.src;
|
|
171
|
-
this.apiCompleted = true;
|
|
172
|
-
}
|
|
173
|
-
showFallbackImage() {
|
|
174
|
-
this.mode = 'fallback';
|
|
175
|
-
this.waitSrc = '/assets/images/no_image_available.jpeg';
|
|
176
|
-
this.apiCompleted = true;
|
|
177
|
-
}
|
|
178
|
-
onIntersection(event) {
|
|
179
|
-
if (event.visible) {
|
|
180
|
-
this.isVisible = true;
|
|
181
|
-
if (this.apiCompleted) {
|
|
182
|
-
this.startImageLoad();
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
startImageLoad() {
|
|
187
|
-
if (!this.activeSrc && this.apiCompleted && this.isVisible) {
|
|
188
|
-
this.activeSrc = this.waitSrc;
|
|
189
|
-
this.cdRef.markForCheck();
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
onImageLoad() {
|
|
193
|
-
this.imageOpacity = 1;
|
|
194
|
-
this.cdRef.markForCheck();
|
|
195
|
-
}
|
|
196
|
-
onImageError() {
|
|
197
|
-
this.activeSrc = null;
|
|
198
|
-
this.showFallbackImage();
|
|
199
|
-
this.startImageLoad();
|
|
200
|
-
}
|
|
201
|
-
openDialog() {
|
|
202
|
-
if (this.currentOption.clickable && this.mode !== 'fallback') {
|
|
203
|
-
if (this.viewerInstance) {
|
|
204
|
-
this.viewerInstance.destroy();
|
|
205
|
-
}
|
|
206
|
-
this.viewerInstance = new Viewer(this.imageElement.nativeElement, Object.assign({
|
|
207
|
-
// Transitions currently break the Viewer when running optimizations during ng build (i.e in prod mode)
|
|
208
|
-
// TODO: Find a fix for this so we don't have to force disable transitions
|
|
209
|
-
transition: false, url: 'src-viewer' }, this.viewerOptions));
|
|
210
|
-
this.viewerInstance.show();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
// -----------------------------------------------------------------------------------------------------
|
|
214
|
-
// @ Private methods
|
|
215
|
-
// -----------------------------------------------------------------------------------------------------
|
|
216
|
-
_init() {
|
|
217
|
-
this.mode = 'imgId';
|
|
218
|
-
this.imageOpacity = 0;
|
|
219
|
-
this.apiCompleted = false;
|
|
220
|
-
this.activeSrc = null;
|
|
221
|
-
Object.assign(this.currentOption, this.defaultOption, this.option);
|
|
222
|
-
this.cdRef.detectChanges();
|
|
223
|
-
}
|
|
224
|
-
getHttpParam() {
|
|
225
|
-
const option = this.currentOption;
|
|
226
|
-
return new HttpParams()
|
|
227
|
-
.append('w', String(option.width))
|
|
228
|
-
.append('h', String(option.height))
|
|
229
|
-
.append('resize', option.resizeType)
|
|
230
|
-
.append('bgcolor', option.resizeBgColor)
|
|
231
|
-
.append('filter', String(option.filter))
|
|
232
|
-
.append('blur', String(option.blur));
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
SkImageComponent.decorators = [
|
|
236
|
-
{ type: Component, args: [{
|
|
237
|
-
selector: 'sk-image',
|
|
238
|
-
template: "<div class=\"img-container\" inViewport (inViewportAction)=\"onIntersection($event)\"\n [ngStyle]=\"containerStyle\" (click)=\"openDialog()\" #imageElement>\n <div class=\"img-cover\" *ngIf=\"option.coverBackground\" [ngStyle]=\"coverStyle\"></div>\n <img *ngIf=\"activeSrc && isVisible\" [ngClass]=\"imageClass\"\n [src]=\"activeSrc\"\n [attr.src-viewer]=\"originalSrc\"\n [ngStyle]=\"imageStyle\"\n [alt]=\"alt\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n</div>\n",
|
|
239
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
240
|
-
styles: [":host{display:block}.img-container{position:relative}.img-container:after{display:block;content:\"\";width:100%}.img-container .img-cover{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:1;transition:opacity .8s linear}.img-container>img{display:block;opacity:0;transition:opacity .8s linear}"]
|
|
241
|
-
},] }
|
|
242
|
-
];
|
|
243
|
-
SkImageComponent.ctorParameters = () => [
|
|
244
|
-
{ type: ChangeDetectorRef },
|
|
245
|
-
{ type: Platform },
|
|
246
|
-
{ type: MatDialog },
|
|
247
|
-
{ type: SkApiService }
|
|
248
|
-
];
|
|
249
|
-
SkImageComponent.propDecorators = {
|
|
250
|
-
src: [{ type: Input }],
|
|
251
|
-
imgId: [{ type: Input }],
|
|
252
|
-
skfile: [{ type: Input }],
|
|
253
|
-
option: [{ type: Input }],
|
|
254
|
-
alt: [{ type: Input }],
|
|
255
|
-
imageClass: [{ type: Input }],
|
|
256
|
-
imageElement: [{ type: ViewChild, args: ['imageElement', { static: false },] }]
|
|
257
|
-
};
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2staW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2ltYWdlL3NyYy9zay1pbWFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULEtBQUssRUFJTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQTRCOUMsTUFBTSxPQUFPLGdCQUFnQjtJQW1EekIsWUFBb0IsS0FBd0IsRUFDeEIsUUFBa0IsRUFDbEIsTUFBaUIsRUFDakIsVUFBd0I7UUFIeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFwRDVDLFNBQUksR0FBNEMsT0FBTyxDQUFDO1FBQ3hELGtCQUFhLEdBQW1CO1lBQzVCLElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztZQUNULFVBQVUsRUFBRSxZQUFZO1lBQ3hCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLENBQUM7WUFDUCxTQUFTLEVBQUUsS0FBSztZQUNoQixlQUFlLEVBQUUsSUFBSTtZQUNyQixZQUFZLEVBQUUsRUFBRTtTQUNuQixDQUFDO1FB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YUFBYSxDQUFDO2FBQ3ZDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7WUFoUkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxVQUFVO2dCQUNwQiw4aUJBQXdDO2dCQUV4QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQTFDRyxpQkFBaUI7WUFTYixRQUFRO1lBRVIsU0FBUztZQUlULFlBQVk7OztrQkFnRGYsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSztrQkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBU0wsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgVmlld2VyIGZyb20gJ3ZpZXdlcmpzJztcblxuaW1wb3J0IHtTa0FwaVNlcnZpY2V9IGZyb20gJ3NrLWZyb250LWxpYi9hcGknO1xuaW1wb3J0IHtTa0ZpbGV9IGZyb20gXCJzay1mcm9udC1saWIvbW9kZWxcIjtcblxuaW50ZXJmYWNlIElNZXRhZGF0YSB7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNrSW1hZ2VPcHRpb25zIHtcbiAgICBtb2RlPzogJ2ltZycgfCAnY3NzJztcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgcmVzaXplVHlwZT86ICdyYXRpb19jcm9wJyB8ICdyYXRpb19maWxsJztcbiAgICByZXNpemVCZ0NvbG9yPzogc3RyaW5nO1xuICAgIGZpbHRlcj86ICdncmF5JyB8ICcnO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgICBjb3ZlckJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgcHJldmlld0NvbG9yPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NrLWltYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2staW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NrLWltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2tJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIG1vZGU6ICdza2ZpbGUnIHwgJ2ltZ0lkJyB8ICdzcmMnIHwgJ2ZhbGxiYWNrJyA9ICdpbWdJZCc7XG4gICAgZGVmYXVsdE9wdGlvbjogU2tJbWFnZU9wdGlvbnMgPSB7XG4gICAgICAgIG1vZGU6ICdpbWcnLFxuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICByZXNpemVUeXBlOiAncmF0aW9fY3JvcCcsXG4gICAgICAgIHJlc2l6ZUJnQ29sb3I6ICcnLFxuICAgICAgICBmaWx0ZXI6ICcnLFxuICAgICAgICBibHVyOiAwLFxuICAgICAgICBjbGlja2FibGU6IGZhbHNlLFxuICAgICAgICBjb3ZlckJhY2tncm91bmQ6IG51bGwsXG4gICAgICAgIHByZXZpZXdDb2xvcjogJydcbiAgICB9O1xuICAgIGN1cnJlbnRPcHRpb246IFNrSW1hZ2VPcHRpb25zID0ge307XG5cbiAgICBhcGlDb21wbGV0ZWQgPSBmYWxzZTtcbiAgICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNyYzogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBpbWdJZDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSBza2ZpbGU6IFNrRmlsZSA9IG51bGw7XG4gICAgQElucHV0KCkgb3B0aW9uOiBTa0ltYWdlT3B0aW9ucyA9IHt9O1xuICAgIEBJbnB1dCgpIGFsdCA9ICcnO1xuICAgIEBJbnB1dCgpIGltYWdlQ2xhc3M6IHN0cmluZ1tdID0gW107XG4gICAgd2FpdFNyYzogc3RyaW5nID0gbnVsbDtcbiAgICBhY3RpdmVTcmM6IHN0cmluZyA9IG51bGw7XG4gICAgb3JpZ2luYWxTcmM6IHN0cmluZyA9IG51bGw7XG5cbiAgICByYXRpbyA9IDEwMDtcbiAgICBiYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZic7XG4gICAgaW1hZ2VPcGFjaXR5ID0gMDtcblxuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlRWxlbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgaW1hZ2VFbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIHZpZXdlckluc3RhbmNlOiBWaWV3ZXI7XG4gICAgdmlld2VyT3B0aW9ucyA9IHtcbiAgICAgICAgbmF2YmFyOiBmYWxzZSxcbiAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxuICAgICAgICBjbGFzc05hbWU6ICdzay1jdXN0b20tdmlld2VyanMnLFxuICAgICAgICB0b29sYmFyOiB7XG4gICAgICAgICAgICB6b29tSW46IDEsXG4gICAgICAgICAgICB6b29tT3V0OiAxLFxuICAgICAgICAgICAgb25lVG9PbmU6IDEsXG4gICAgICAgICAgICByZXNldDogMSxcbiAgICAgICAgfSxcbiAgICAgICAgbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgcm90YXRhYmxlOiBmYWxzZSxcbiAgICAgICAgdG9nZ2xlT25EYmxjbGljazogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgQWNjZXNzb3JzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tMS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBnZXQgY29udGFpbmVyU3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdpbWdJZCcgfHwgdGhpcy5tb2RlID09PSAnc2tmaWxlJykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b20nOiB0aGlzLnJhdGlvICsgJyUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzBweCcsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAgICAgICAgICAgY3Vyc29yOiB0aGlzLmN1cnJlbnRPcHRpb24uY2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2luaGVyaXQnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tJzogJzBweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaW1hZ2VTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2ltZ0lkJykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzAnLFxuICAgICAgICAgICAgICAgIGxlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICByaWdodDogJzAnLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IHRoaXMuaW1hZ2VPcGFjaXR5XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IHRoaXMuaW1hZ2VPcGFjaXR5XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGNvdmVyU3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbi5jb3ZlckJhY2tncm91bmQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQnOiB0aGlzLm9wdGlvbi5jb3ZlckJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogdGhpcy5pbWFnZU9wYWNpdHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXQoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogc2tmaWxlLCBpbWdJZCwgc3JjIOyInOyEnOuhnCDsmrDshKDqtozsnYQg6rCA7KeE64ukLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCEhY2hhbmdlcy5za2ZpbGUgJiYgISFjaGFuZ2VzLnNrZmlsZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9ICdza2ZpbGUnO1xuICAgICAgICAgICAgdGhpcy5pbWdJZCA9IHRoaXMuc2tmaWxlLmlkO1xuICAgICAgICAgICAgdGhpcy5sb2FkSW1hZ2VCeUZpbGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIWNoYW5nZXMuaW1nSWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9ICdpbWdJZCc7XG4gICAgICAgICAgICB0aGlzLmxvYWRJbWFnZUJ5SWQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIWNoYW5nZXMuc3JjKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSAnc3JjJztcbiAgICAgICAgICAgIHRoaXMubG9hZEltYWdlQnlTcmMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlld2VySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMudmlld2VySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGxvYWRJbWFnZUJ5RmlsZSgpIHtcbiAgICAgICAgdGhpcy53YWl0U3JjID0gYCR7dGhpcy5hcGlTZXJ2aWNlLmFwaVNlcnZlcn0vYXBpL3B1YmxpYy9pbWFnZXMvJHt0aGlzLmltZ0lkfT8ke3RoaXMuZ2V0SHR0cFBhcmFtKCkudG9TdHJpbmcoKX1gO1xuICAgICAgICB0aGlzLm9yaWdpbmFsU3JjID0gYCR7dGhpcy5hcGlTZXJ2aWNlLmFwaVNlcnZlcn0vYXBpL3B1YmxpYy9pbWFnZXMvJHt0aGlzLmltZ0lkfWA7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLnNrZmlsZSBhcyBJTWV0YWRhdGE7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRPcHRpb24ud2lkdGggPiAwICYmIHRoaXMuY3VycmVudE9wdGlvbi5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnJhdGlvID0gdGhpcy5jdXJyZW50T3B0aW9uLmhlaWdodCAvIHRoaXMuY3VycmVudE9wdGlvbi53aWR0aCAqIDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmF0aW8gPSBtZXRhZGF0YS5oZWlnaHQgLyBtZXRhZGF0YS53aWR0aCAqIDEwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gISF0aGlzLmN1cnJlbnRPcHRpb24ucHJldmlld0NvbG9yID8gdGhpcy5jdXJyZW50T3B0aW9uLnByZXZpZXdDb2xvciA6XG4gICAgICAgICAgICAodGhpcy5jdXJyZW50T3B0aW9uLmZpbHRlciA9PT0gJ2dyYXknID8gJyNmZmYnIDogbWV0YWRhdGEuY29sb3IpO1xuXG4gICAgICAgIHRoaXMuYXBpQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5zdGFydEltYWdlTG9hZCgpO1xuICAgIH1cblxuICAgIGxvYWRJbWFnZUJ5SWQoKSB7XG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5nZXQ8U2tGaWxlPihgL2FwaS9wdWJsaWMvaW1hZ2VzLyR7dGhpcy5pbWdJZH0vbWV0YWRhdGFgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNrZmlsZSA9IHJlc3VsdC5kYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRJbWFnZUJ5RmlsZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dGYWxsYmFja0ltYWdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2FkSW1hZ2VCeVNyYygpIHtcbiAgICAgICAgdGhpcy53YWl0U3JjID0gdGhpcy5zcmM7XG4gICAgICAgIHRoaXMuYXBpQ29tcGxldGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBzaG93RmFsbGJhY2tJbWFnZSgpIHtcbiAgICAgICAgdGhpcy5tb2RlID0gJ2ZhbGxiYWNrJztcbiAgICAgICAgdGhpcy53YWl0U3JjID0gJy9hc3NldHMvaW1hZ2VzL25vX2ltYWdlX2F2YWlsYWJsZS5qcGVnJztcbiAgICAgICAgdGhpcy5hcGlDb21wbGV0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uSW50ZXJzZWN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5hcGlDb21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0SW1hZ2VMb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGFydEltYWdlTG9hZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVNyYyAmJiB0aGlzLmFwaUNvbXBsZXRlZCAmJiB0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVTcmMgPSB0aGlzLndhaXRTcmM7XG4gICAgICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbWFnZUxvYWQoKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VPcGFjaXR5ID0gMTtcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkltYWdlRXJyb3IoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3JjID0gbnVsbDtcbiAgICAgICAgdGhpcy5zaG93RmFsbGJhY2tJbWFnZSgpO1xuICAgICAgICB0aGlzLnN0YXJ0SW1hZ2VMb2FkKCk7XG4gICAgfVxuXG4gICAgb3BlbkRpYWxvZygpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE9wdGlvbi5jbGlja2FibGUgJiYgdGhpcy5tb2RlICE9PSAnZmFsbGJhY2snKSB7XG4gICAgICAgICAgICBpZiAodGhpcy52aWV3ZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld2VySW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZpZXdlckluc3RhbmNlID0gbmV3IFZpZXdlcih0aGlzLmltYWdlRWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbnMgY3VycmVudGx5IGJyZWFrIHRoZSBWaWV3ZXIgd2hlbiBydW5uaW5nIG9wdGltaXphdGlvbnMgZHVyaW5nIG5nIGJ1aWxkIChpLmUgaW4gcHJvZCBtb2RlKVxuICAgICAgICAgICAgICAgIC8vIFRPRE86IEZpbmQgYSBmaXggZm9yIHRoaXMgc28gd2UgZG9uJ3QgaGF2ZSB0byBmb3JjZSBkaXNhYmxlIHRyYW5zaXRpb25zXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgdXJsOiAnc3JjLXZpZXdlcicsXG4gICAgICAgICAgICAgICAgLi4udGhpcy52aWV3ZXJPcHRpb25zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnZpZXdlckluc3RhbmNlLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBQcml2YXRlIG1ldGhvZHNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfaW5pdCgpIHtcbiAgICAgICAgdGhpcy5tb2RlID0gJ2ltZ0lkJztcbiAgICAgICAgdGhpcy5pbWFnZU9wYWNpdHkgPSAwO1xuICAgICAgICB0aGlzLmFwaUNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGl2ZVNyYyA9IG51bGw7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jdXJyZW50T3B0aW9uLCB0aGlzLmRlZmF1bHRPcHRpb24sIHRoaXMub3B0aW9uKTtcblxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEh0dHBQYXJhbSgpOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uOiBTa0ltYWdlT3B0aW9ucyA9IHRoaXMuY3VycmVudE9wdGlvbjtcblxuICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgLmFwcGVuZCgndycsIFN0cmluZyhvcHRpb24ud2lkdGgpKVxuICAgICAgICAgICAgLmFwcGVuZCgnaCcsIFN0cmluZyhvcHRpb24uaGVpZ2h0KSlcbiAgICAgICAgICAgIC5hcHBlbmQoJ3Jlc2l6ZScsIG9wdGlvbi5yZXNpemVUeXBlKVxuICAgICAgICAgICAgLmFwcGVuZCgnYmdjb2xvcicsIG9wdGlvbi5yZXNpemVCZ0NvbG9yKVxuICAgICAgICAgICAgLmFwcGVuZCgnZmlsdGVyJywgU3RyaW5nKG9wdGlvbi5maWx0ZXIpKVxuICAgICAgICAgICAgLmFwcGVuZCgnYmx1cicsIFN0cmluZyhvcHRpb24uYmx1cikpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
4
|
-
import { InViewportModule } from 'ng-in-viewport';
|
|
5
|
-
import { SkImageComponent } from './sk-image.component';
|
|
6
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
-
export class SkImageModule {
|
|
9
|
-
}
|
|
10
|
-
SkImageModule.decorators = [
|
|
11
|
-
{ type: NgModule, args: [{
|
|
12
|
-
imports: [
|
|
13
|
-
CommonModule,
|
|
14
|
-
InViewportModule,
|
|
15
|
-
MatDialogModule,
|
|
16
|
-
MatButtonModule,
|
|
17
|
-
MatIconModule
|
|
18
|
-
],
|
|
19
|
-
declarations: [
|
|
20
|
-
SkImageComponent,
|
|
21
|
-
],
|
|
22
|
-
exports: [
|
|
23
|
-
SkImageComponent
|
|
24
|
-
],
|
|
25
|
-
entryComponents: []
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2staW1hZ2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2ltYWdlL3NyYy9zay1pbWFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFvQnJELE1BQU0sT0FBTyxhQUFhOzs7WUFsQnpCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixnQkFBZ0I7b0JBRWhCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixhQUFhO2lCQUNoQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1YsZ0JBQWdCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsZ0JBQWdCO2lCQUNuQjtnQkFDRCxlQUFlLEVBQUUsRUFDaEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHtJblZpZXdwb3J0TW9kdWxlfSBmcm9tICduZy1pbi12aWV3cG9ydCc7XG5cbmltcG9ydCB7U2tJbWFnZUNvbXBvbmVudH0gZnJvbSAnLi9zay1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBJblZpZXdwb3J0TW9kdWxlLFxuXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2tJbWFnZUNvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2tJbWFnZUNvbXBvbmVudFxuICAgIF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa0ltYWdlTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { SkUtils } from './sk-utils';
|
|
3
|
-
export class SkBytePipe {
|
|
4
|
-
transform(value, args) {
|
|
5
|
-
if (typeof value === 'number') {
|
|
6
|
-
return SkUtils.humanFileSize(value);
|
|
7
|
-
}
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
SkBytePipe.decorators = [
|
|
12
|
-
{ type: Pipe, args: [{ name: 'skByte' },] }
|
|
13
|
-
];
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYnl0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL3NyYy9saWIvc2stYnl0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFHbkMsTUFBTSxPQUFPLFVBQVU7SUFDbkIsU0FBUyxDQUFDLEtBQVUsRUFBRSxJQUFlO1FBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7OztZQVBKLElBQUksU0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NrVXRpbHN9IGZyb20gJy4vc2stdXRpbHMnO1xuXG5AUGlwZSh7bmFtZTogJ3NrQnl0ZSd9KVxuZXhwb3J0IGNsYXNzIFNrQnl0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IHN0cmluZ1tdKTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBTa1V0aWxzLmh1bWFuRmlsZVNpemUodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as moment from 'moment';
|
|
3
|
-
export class SkDateTimePipe {
|
|
4
|
-
transform(value, args) {
|
|
5
|
-
const date = moment.utc(value).local();
|
|
6
|
-
return date.format('YYYY-MM-DD HH:mm:ss');
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
SkDateTimePipe.decorators = [
|
|
10
|
-
{ type: Pipe, args: [{ name: 'skDateTime' },] }
|
|
11
|
-
];
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stZGF0ZS10aW1lLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zay1mcm9udC1saWIvc3JjL2xpYi9zay1kYXRlLXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUdqQyxNQUFNLE9BQU8sY0FBYztJQUN2QixTQUFTLENBQUMsS0FBVSxFQUFFLElBQWU7UUFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7WUFMSixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBQaXBlKHtuYW1lOiAnc2tEYXRlVGltZSd9KVxuZXhwb3J0IGNsYXNzIFNrRGF0ZVRpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBzdHJpbmdbXSk6IGFueSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQudXRjKHZhbHVlKS5sb2NhbCgpO1xuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKTtcbiAgICB9XG59XG4iXX0=
|