sk-front-lib 0.17.42 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/article/sk-article-editor-server.component.d.ts +1 -1
  2. package/article/sk-article-editor.component.d.ts +1 -1
  3. package/article/sk-froala-editor.directive.d.ts +1 -1
  4. package/esm2020/api/sk-api.module.mjs +7 -9
  5. package/esm2020/api/sk-api.service.mjs +3 -3
  6. package/esm2020/article/sk-article-editor-server.component.mjs +3 -3
  7. package/esm2020/article/sk-article-editor.component.mjs +3 -3
  8. package/esm2020/article/sk-article-server.module.mjs +5 -7
  9. package/esm2020/article/sk-article.module.mjs +5 -7
  10. package/esm2020/article/sk-article.service.mjs +3 -3
  11. package/esm2020/article/sk-froala-editor.directive.mjs +3 -3
  12. package/esm2020/crud/sk-account.service.mjs +3 -3
  13. package/esm2020/crud/sk-affiliate.service.mjs +3 -3
  14. package/esm2020/crud/sk-auth-admin.guard.mjs +3 -3
  15. package/esm2020/crud/sk-auth.guard.mjs +3 -3
  16. package/esm2020/crud/sk-auth.service.mjs +3 -3
  17. package/esm2020/crud/sk-board.service.mjs +3 -3
  18. package/esm2020/crud/sk-brand.service.mjs +3 -3
  19. package/esm2020/crud/sk-cart.service.mjs +10 -10
  20. package/esm2020/crud/sk-category.service.mjs +3 -3
  21. package/esm2020/crud/sk-comment.service.mjs +3 -3
  22. package/esm2020/crud/sk-config.service.mjs +3 -3
  23. package/esm2020/crud/sk-contact.service.mjs +3 -3
  24. package/esm2020/crud/sk-coupon.service.mjs +3 -3
  25. package/esm2020/crud/sk-document.service.mjs +3 -3
  26. package/esm2020/crud/sk-etc.service.mjs +3 -3
  27. package/esm2020/crud/sk-file.service.mjs +3 -3
  28. package/esm2020/crud/sk-keyword.service.mjs +3 -3
  29. package/esm2020/crud/sk-order.service.mjs +3 -3
  30. package/esm2020/crud/sk-point.service.mjs +3 -3
  31. package/esm2020/crud/sk-product.service.mjs +3 -3
  32. package/esm2020/crud/sk-promotion.service.mjs +3 -3
  33. package/esm2020/crud/sk-search.service.mjs +3 -3
  34. package/esm2020/crud/sk-store.service.mjs +3 -3
  35. package/esm2020/crud/sk-user.service.mjs +3 -3
  36. package/esm2020/google-analytics/google-analytics-router.module.mjs +7 -9
  37. package/esm2020/google-analytics/google-analytics.module.mjs +6 -9
  38. package/esm2020/google-analytics/services/google-analytics.service.mjs +3 -3
  39. package/esm2020/image/sk-image.component.mjs +6 -6
  40. package/esm2020/image/sk-image.module.mjs +10 -13
  41. package/esm2020/lib/sk-byte.pipe.mjs +3 -3
  42. package/esm2020/lib/sk-date-time.pipe.mjs +3 -3
  43. package/esm2020/lib/sk-date.pipe.mjs +3 -3
  44. package/esm2020/lib/sk-front-lib.module.mjs +6 -7
  45. package/esm2020/lib/sk-keys.pipe.mjs +3 -3
  46. package/esm2020/lib/sk-time.pipe.mjs +3 -3
  47. package/esm2020/search-address/dialog/dialog.component.mjs +5 -5
  48. package/esm2020/search-address/sk-search-address.directive.mjs +3 -3
  49. package/esm2020/search-address/sk-search-address.module.mjs +10 -15
  50. package/esm2020/search-address/sk-search-address.service.mjs +4 -4
  51. package/esm2020/uploader/sk-uploader.component.mjs +13 -13
  52. package/esm2020/uploader/sk-uploader.directive.mjs +3 -3
  53. package/esm2020/uploader/sk-uploader.module.mjs +12 -17
  54. package/fesm2015/sk-front-lib-api.mjs +9 -11
  55. package/fesm2015/sk-front-lib-api.mjs.map +1 -1
  56. package/fesm2015/sk-front-lib-article.mjs +20 -24
  57. package/fesm2015/sk-front-lib-article.mjs.map +1 -1
  58. package/fesm2015/sk-front-lib-crud.mjs +78 -78
  59. package/fesm2015/sk-front-lib-crud.mjs.map +1 -1
  60. package/fesm2015/sk-front-lib-google-analytics.mjs +14 -19
  61. package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -1
  62. package/fesm2015/sk-front-lib-image.mjs +15 -18
  63. package/fesm2015/sk-front-lib-image.mjs.map +1 -1
  64. package/fesm2015/sk-front-lib-model.mjs.map +1 -1
  65. package/fesm2015/sk-front-lib-search-address.mjs +20 -25
  66. package/fesm2015/sk-front-lib-search-address.mjs.map +1 -1
  67. package/fesm2015/sk-front-lib-uploader.mjs +26 -31
  68. package/fesm2015/sk-front-lib-uploader.mjs.map +1 -1
  69. package/fesm2015/sk-front-lib.mjs +20 -21
  70. package/fesm2015/sk-front-lib.mjs.map +1 -1
  71. package/fesm2020/sk-front-lib-api.mjs +9 -11
  72. package/fesm2020/sk-front-lib-api.mjs.map +1 -1
  73. package/fesm2020/sk-front-lib-article.mjs +20 -24
  74. package/fesm2020/sk-front-lib-article.mjs.map +1 -1
  75. package/fesm2020/sk-front-lib-crud.mjs +78 -78
  76. package/fesm2020/sk-front-lib-crud.mjs.map +1 -1
  77. package/fesm2020/sk-front-lib-google-analytics.mjs +14 -19
  78. package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -1
  79. package/fesm2020/sk-front-lib-image.mjs +15 -18
  80. package/fesm2020/sk-front-lib-image.mjs.map +1 -1
  81. package/fesm2020/sk-front-lib-model.mjs.map +1 -1
  82. package/fesm2020/sk-front-lib-search-address.mjs +20 -25
  83. package/fesm2020/sk-front-lib-search-address.mjs.map +1 -1
  84. package/fesm2020/sk-front-lib-uploader.mjs +26 -31
  85. package/fesm2020/sk-front-lib-uploader.mjs.map +1 -1
  86. package/fesm2020/sk-front-lib.mjs +20 -21
  87. package/fesm2020/sk-front-lib.mjs.map +1 -1
  88. package/image/sk-image.component.d.ts +1 -1
  89. package/lib/sk-byte.pipe.d.ts +1 -1
  90. package/lib/sk-date-time.pipe.d.ts +1 -1
  91. package/lib/sk-date.pipe.d.ts +1 -1
  92. package/lib/sk-keys.pipe.d.ts +1 -1
  93. package/lib/sk-time.pipe.d.ts +1 -1
  94. package/package.json +19 -19
  95. package/search-address/dialog/dialog.component.d.ts +1 -1
  96. package/search-address/sk-search-address.directive.d.ts +1 -1
  97. package/uploader/sk-uploader.component.d.ts +1 -1
  98. package/uploader/sk-uploader.directive.d.ts +1 -1
  99. package/api/package.json +0 -10
  100. package/article/package.json +0 -10
  101. package/crud/package.json +0 -10
  102. package/google-analytics/package.json +0 -10
  103. package/image/package.json +0 -10
  104. package/model/package.json +0 -10
  105. package/search-address/package.json +0 -10
  106. package/uploader/package.json +0 -10
  107. /package/api/{sk-front-lib-api.d.ts → index.d.ts} +0 -0
  108. /package/article/{sk-front-lib-article.d.ts → index.d.ts} +0 -0
  109. /package/crud/{sk-front-lib-crud.d.ts → index.d.ts} +0 -0
  110. /package/google-analytics/{sk-front-lib-google-analytics.d.ts → index.d.ts} +0 -0
  111. /package/image/{sk-front-lib-image.d.ts → index.d.ts} +0 -0
  112. /package/{sk-front-lib.d.ts → index.d.ts} +0 -0
  113. /package/model/{sk-front-lib-model.d.ts → index.d.ts} +0 -0
  114. /package/search-address/{sk-front-lib-search-address.d.ts → index.d.ts} +0 -0
  115. /package/uploader/{sk-front-lib-uploader.d.ts → index.d.ts} +0 -0
@@ -236,9 +236,9 @@ class SkGoogleAnalyticsService {
236
236
  }
237
237
  }
238
238
  }
239
- SkGoogleAnalyticsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, deps: [{ token: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
240
- SkGoogleAnalyticsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, providedIn: 'root' });
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsService, decorators: [{
239
+ SkGoogleAnalyticsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsService, deps: [{ token: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
240
+ SkGoogleAnalyticsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsService, providedIn: 'root' });
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsService, decorators: [{
242
242
  type: Injectable,
243
243
  args: [{
244
244
  providedIn: 'root'
@@ -289,35 +289,30 @@ class SkGoogleAnalyticsModule {
289
289
  };
290
290
  }
291
291
  }
292
- SkGoogleAnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
293
- SkGoogleAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [CommonModule] });
294
- SkGoogleAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [[
295
- CommonModule,
296
- ]] });
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsModule, decorators: [{
292
+ SkGoogleAnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
293
+ SkGoogleAnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [CommonModule] });
294
+ SkGoogleAnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsModule, imports: [CommonModule] });
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsModule, decorators: [{
298
296
  type: NgModule,
299
297
  args: [{
300
298
  imports: [
301
299
  CommonModule,
302
300
  ],
303
301
  declarations: [],
304
- exports: [],
305
- entryComponents: []
302
+ exports: []
306
303
  }]
307
304
  }] });
308
305
 
309
306
  class SkGoogleAnalyticsRouterModule {
310
307
  }
311
- SkGoogleAnalyticsRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
312
- SkGoogleAnalyticsRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, imports: [CommonModule,
308
+ SkGoogleAnalyticsRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
309
+ SkGoogleAnalyticsRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsRouterModule, imports: [CommonModule,
313
310
  SkGoogleAnalyticsModule] });
314
- SkGoogleAnalyticsRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, providers: [
311
+ SkGoogleAnalyticsRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsRouterModule, providers: [
315
312
  SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER
316
- ], imports: [[
317
- CommonModule,
318
- SkGoogleAnalyticsModule
319
- ]] });
320
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkGoogleAnalyticsRouterModule, decorators: [{
313
+ ], imports: [CommonModule,
314
+ SkGoogleAnalyticsModule] });
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkGoogleAnalyticsRouterModule, decorators: [{
321
316
  type: NgModule,
322
317
  args: [{
323
318
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"sk-front-lib-google-analytics.mjs","sources":["../../../projects/sk-front-lib/google-analytics/src/tokens/google-analytics-settings-token.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/services/google-analytics.service.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics-router.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics.module.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics-router.module.ts","../../../projects/sk-front-lib/google-analytics/src/sk-front-lib-google-analytics.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\n\nexport const SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN = new InjectionToken<ISkGoogleAnalyticsSettings>('sk-google-analytics-setting', {\n factory: () => ({ trackingCode: '' })\n});\n","import {APP_INITIALIZER, Inject, isDevMode, PLATFORM_ID, Provider} from \"@angular/core\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsCommand} from \"../interfaces/google-analytics-command\";\nimport {isPlatformServer} from \"@angular/common\";\n\nexport const SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: GoogleAnalyticsInitializer,\n deps: [\n SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n PLATFORM_ID\n ]\n};\n\nexport function GoogleAnalyticsInitializer(_settings: ISkGoogleAnalyticsSettings,\n platform: Object) {\n return async () => {\n if (!_settings.trackingCode) {\n if (!isDevMode()) {\n console.error('Empty tracking code for Google Analytics. Make sure to provide one when initializing SkGoogleAnalyticsModule.');\n }\n\n return;\n }\n\n if (isPlatformServer(platform)) {\n return;\n }\n\n // Set default ga.js uri\n _settings.uri = _settings.uri || `https://www.googletagmanager.com/gtag/js?id=${_settings.trackingCode}`;\n\n // these commands should run first!\n const initialCommands: Array<ISkGoogleAnalyticsCommand> = [\n {command: 'js', values: [new Date()]},\n {command: 'config', values: [_settings.trackingCode]}\n ];\n\n _settings.initCommands = [...initialCommands, ...(_settings.initCommands || [])];\n\n window['dataLayer'] = window['dataLayer'] || [];\n window['gtag'] = window['gtag'] || function () {\n window['dataLayer'].push(arguments);\n };\n\n for (const command of _settings.initCommands) {\n window['gtag'](command.command, ...command.values);\n }\n\n const s: HTMLScriptElement = document.createElement('script');\n s.async = true;\n s.src = _settings.uri;\n\n const head: HTMLHeadElement = document.getElementsByTagName('head')[0];\n head.appendChild(s);\n };\n}\n","import {Injectable, Inject} from '@angular/core';\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {GaAction} from \"../types/ga-action.type\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkGoogleAnalyticsService {\n\n constructor(@Inject(SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN) protected _trackingId: ISkGoogleAnalyticsSettings) {\n }\n\n protected throw(err: Error) {\n if (console && console.error) {\n console.error(err);\n }\n }\n\n /**\n * Call native GA Tag\n *\n * @param action config|event\n * @param command Action specialization\n * @param options Command configuration\n */\n gtag(action: string, command: string, ...options: Array<any>) {\n try {\n window['gtag'](action, command, ...options);\n } catch (err) {\n this.throw(err);\n }\n }\n\n /**\n * Send an event trigger to GA. It is the same as call:\n * ```js\n * gtag('event', 'video_auto_play_start', {\n * 'event_label': 'My promotional video',\n * 'event_category': 'video_auto_play'\n * });\n * ```\n *\n * @param action 'video_auto_play_start'\n * @param category 'video_auto_play'\n * @param label 'My promotional video'\n * @param value An value to measure something\n */\n event(action: GaAction | string, category?: string, label?: string, value?: number, interaction?: boolean) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (category) {\n opt['event_category'] = category;\n }\n if (label) {\n opt['event_label'] = label;\n }\n if (value) {\n opt['value'] = value;\n }\n if (interaction !== undefined) {\n opt['interaction'] = interaction;\n }\n this.gtag('event', action as string, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n purchase(data) {\n try {\n if (window['gtag']) {\n this.gtag('event', 'purchase', data);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an page view event. This is the same as\n *\n * ```js\n * gtag('config', 'GA_TRACKING_ID', {\n * 'page_title' : 'Homepage',\n * 'page_path': '/home'\n * });\n * ```\n *\n * The tracking ID is injected automatically by Inject Token NGX_GOOGLE_ANALYTICS_SETTINGS_TOKEN\n *\n * @param path /home\n * @param title Homepage\n * @param location '{ page_location }'\n * @param options '{ ... custom dimentions }'\n */\n pageView(path?: string, title?: string, location?: string, options?: Object) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (path) {\n opt['page_path'] = path;\n }\n if (title) {\n opt['page_title'] = title;\n }\n if (location) {\n opt['page_location'] = location;\n }\n if (options) {\n Object.assign(opt, options);\n }\n this.gtag('config', this._trackingId.trackingCode, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an evento to report a App Page View. It is the same as\n *\n * ```js\n * gtag('event', 'screen_view', {\n * 'app_name': 'myAppName',\n * 'screen_name' : 'Home'\n * });\n *\n * ```\n *\n * @param screen 'screen_name'\n * @param name 'app_name'\n * @param appId 'app_id'\n * @param appVersion 'app_version'\n * @param installerId 'app_installer_id'\n */\n appView(screen: string, appName: string, appId?: string, appVersion?: string, installerId?: string) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (screen) {\n opt['screen_name'] = screen;\n }\n if (appName) {\n opt['app_name'] = appName;\n }\n if (appId) {\n opt['app_id'] = appId;\n }\n if (appVersion) {\n opt['app_version'] = appVersion;\n }\n if (installerId) {\n opt['app_installer_id'] = installerId;\n }\n this.gtag('event', 'screen_view', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an event to GA to report an application error. It is the same as\n *\n * ```js\n * gtag('event', 'exception', {\n * 'description': 'error_description',\n * 'fatal': false // set to true if the error is fatal\n * });\n * ```\n *\n * @param description 'error_description'\n * @param fatal set to true if the error is fatal\n */\n exception(description?: string, fatal?: boolean) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (description) {\n opt['description'] = description;\n }\n if (fatal) {\n opt['fatal'] = fatal;\n }\n this.gtag('event', 'exception', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n}\n","import {APP_BOOTSTRAP_LISTENER, ComponentRef, Provider} from \"@angular/core\";\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {SkGoogleAnalyticsService} from \"../services/google-analytics.service\";\n\nexport const SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER: Provider = {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: GoogleAnalyticsRouterInitializer,\n deps: [\n SkGoogleAnalyticsService,\n Router\n ]\n};\n\nexport function GoogleAnalyticsRouterInitializer(\n _googleAnalyticsService: SkGoogleAnalyticsService,\n _router: Router\n) {\n return async (c: ComponentRef<any>) => {\n _router\n .events\n .subscribe(event => {\n if (event instanceof NavigationEnd) {\n _googleAnalyticsService.pageView(event.urlAfterRedirects, undefined, document.location.href);\n }\n });\n };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN } from './tokens/google-analytics-settings-token';\nimport { ISkGoogleAnalyticsCommand } from './interfaces/google-analytics-command';\nimport { SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER } from './initializers/google-analytics.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [],\n exports: [],\n entryComponents: []\n})\nexport class SkGoogleAnalyticsModule {\n static forRoot(trackingCode: string, commands: ISkGoogleAnalyticsCommand[] = [], uri?: string): ModuleWithProviders<SkGoogleAnalyticsModule> {\n return {\n ngModule: SkGoogleAnalyticsModule,\n providers: [\n {\n provide: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n useValue: {\n trackingCode,\n commands,\n uri\n }\n },\n SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER,\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkGoogleAnalyticsModule } from './google-analytics.module';\nimport { SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER } from './initializers/google-analytics-router.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n SkGoogleAnalyticsModule\n ],\n providers: [\n SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER\n ],\n declarations: []\n})\nexport class SkGoogleAnalyticsRouterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sk-front-lib-google-analytics.mjs","sources":["../../../projects/sk-front-lib/google-analytics/src/tokens/google-analytics-settings-token.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/services/google-analytics.service.ts","../../../projects/sk-front-lib/google-analytics/src/initializers/google-analytics-router.initializer.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics.module.ts","../../../projects/sk-front-lib/google-analytics/src/google-analytics-router.module.ts","../../../projects/sk-front-lib/google-analytics/src/sk-front-lib-google-analytics.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\n\nexport const SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN = new InjectionToken<ISkGoogleAnalyticsSettings>('sk-google-analytics-setting', {\n factory: () => ({ trackingCode: '' })\n});\n","import {APP_INITIALIZER, Inject, isDevMode, PLATFORM_ID, Provider} from \"@angular/core\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsCommand} from \"../interfaces/google-analytics-command\";\nimport {isPlatformServer} from \"@angular/common\";\n\nexport const SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER: Provider = {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: GoogleAnalyticsInitializer,\n deps: [\n SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n PLATFORM_ID\n ]\n};\n\nexport function GoogleAnalyticsInitializer(_settings: ISkGoogleAnalyticsSettings,\n platform: Object) {\n return async () => {\n if (!_settings.trackingCode) {\n if (!isDevMode()) {\n console.error('Empty tracking code for Google Analytics. Make sure to provide one when initializing SkGoogleAnalyticsModule.');\n }\n\n return;\n }\n\n if (isPlatformServer(platform)) {\n return;\n }\n\n // Set default ga.js uri\n _settings.uri = _settings.uri || `https://www.googletagmanager.com/gtag/js?id=${_settings.trackingCode}`;\n\n // these commands should run first!\n const initialCommands: Array<ISkGoogleAnalyticsCommand> = [\n {command: 'js', values: [new Date()]},\n {command: 'config', values: [_settings.trackingCode]}\n ];\n\n _settings.initCommands = [...initialCommands, ...(_settings.initCommands || [])];\n\n window['dataLayer'] = window['dataLayer'] || [];\n window['gtag'] = window['gtag'] || function () {\n window['dataLayer'].push(arguments);\n };\n\n for (const command of _settings.initCommands) {\n window['gtag'](command.command, ...command.values);\n }\n\n const s: HTMLScriptElement = document.createElement('script');\n s.async = true;\n s.src = _settings.uri;\n\n const head: HTMLHeadElement = document.getElementsByTagName('head')[0];\n head.appendChild(s);\n };\n}\n","import {Injectable, Inject} from '@angular/core';\nimport {SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN} from \"../tokens/google-analytics-settings-token\";\nimport {ISkGoogleAnalyticsSettings} from \"../interfaces/google-analytics-settings\";\nimport {GaAction} from \"../types/ga-action.type\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkGoogleAnalyticsService {\n\n constructor(@Inject(SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN) protected _trackingId: ISkGoogleAnalyticsSettings) {\n }\n\n protected throw(err: Error) {\n if (console && console.error) {\n console.error(err);\n }\n }\n\n /**\n * Call native GA Tag\n *\n * @param action config|event\n * @param command Action specialization\n * @param options Command configuration\n */\n gtag(action: string, command: string, ...options: Array<any>) {\n try {\n window['gtag'](action, command, ...options);\n } catch (err) {\n this.throw(err);\n }\n }\n\n /**\n * Send an event trigger to GA. It is the same as call:\n * ```js\n * gtag('event', 'video_auto_play_start', {\n * 'event_label': 'My promotional video',\n * 'event_category': 'video_auto_play'\n * });\n * ```\n *\n * @param action 'video_auto_play_start'\n * @param category 'video_auto_play'\n * @param label 'My promotional video'\n * @param value An value to measure something\n */\n event(action: GaAction | string, category?: string, label?: string, value?: number, interaction?: boolean) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (category) {\n opt['event_category'] = category;\n }\n if (label) {\n opt['event_label'] = label;\n }\n if (value) {\n opt['value'] = value;\n }\n if (interaction !== undefined) {\n opt['interaction'] = interaction;\n }\n this.gtag('event', action as string, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n purchase(data) {\n try {\n if (window['gtag']) {\n this.gtag('event', 'purchase', data);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an page view event. This is the same as\n *\n * ```js\n * gtag('config', 'GA_TRACKING_ID', {\n * 'page_title' : 'Homepage',\n * 'page_path': '/home'\n * });\n * ```\n *\n * The tracking ID is injected automatically by Inject Token NGX_GOOGLE_ANALYTICS_SETTINGS_TOKEN\n *\n * @param path /home\n * @param title Homepage\n * @param location '{ page_location }'\n * @param options '{ ... custom dimentions }'\n */\n pageView(path?: string, title?: string, location?: string, options?: Object) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (path) {\n opt['page_path'] = path;\n }\n if (title) {\n opt['page_title'] = title;\n }\n if (location) {\n opt['page_location'] = location;\n }\n if (options) {\n Object.assign(opt, options);\n }\n this.gtag('config', this._trackingId.trackingCode, opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an evento to report a App Page View. It is the same as\n *\n * ```js\n * gtag('event', 'screen_view', {\n * 'app_name': 'myAppName',\n * 'screen_name' : 'Home'\n * });\n *\n * ```\n *\n * @param screen 'screen_name'\n * @param name 'app_name'\n * @param appId 'app_id'\n * @param appVersion 'app_version'\n * @param installerId 'app_installer_id'\n */\n appView(screen: string, appName: string, appId?: string, appVersion?: string, installerId?: string) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (screen) {\n opt['screen_name'] = screen;\n }\n if (appName) {\n opt['app_name'] = appName;\n }\n if (appId) {\n opt['app_id'] = appId;\n }\n if (appVersion) {\n opt['app_version'] = appVersion;\n }\n if (installerId) {\n opt['app_installer_id'] = installerId;\n }\n this.gtag('event', 'screen_view', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n\n /**\n * Send an event to GA to report an application error. It is the same as\n *\n * ```js\n * gtag('event', 'exception', {\n * 'description': 'error_description',\n * 'fatal': false // set to true if the error is fatal\n * });\n * ```\n *\n * @param description 'error_description'\n * @param fatal set to true if the error is fatal\n */\n exception(description?: string, fatal?: boolean) {\n try {\n if (window['gtag']) {\n const opt = {};\n if (description) {\n opt['description'] = description;\n }\n if (fatal) {\n opt['fatal'] = fatal;\n }\n this.gtag('event', 'exception', opt);\n }\n } catch (error) {\n this.throw(error);\n }\n }\n}\n","import {APP_BOOTSTRAP_LISTENER, ComponentRef, Provider} from \"@angular/core\";\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {SkGoogleAnalyticsService} from \"../services/google-analytics.service\";\n\nexport const SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER: Provider = {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: GoogleAnalyticsRouterInitializer,\n deps: [\n SkGoogleAnalyticsService,\n Router\n ]\n};\n\nexport function GoogleAnalyticsRouterInitializer(\n _googleAnalyticsService: SkGoogleAnalyticsService,\n _router: Router\n) {\n return async (c: ComponentRef<any>) => {\n _router\n .events\n .subscribe(event => {\n if (event instanceof NavigationEnd) {\n _googleAnalyticsService.pageView(event.urlAfterRedirects, undefined, document.location.href);\n }\n });\n };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN } from './tokens/google-analytics-settings-token';\nimport { ISkGoogleAnalyticsCommand } from './interfaces/google-analytics-command';\nimport { SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER } from './initializers/google-analytics.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [],\n exports: []\n})\nexport class SkGoogleAnalyticsModule {\n static forRoot(trackingCode: string, commands: ISkGoogleAnalyticsCommand[] = [], uri?: string): ModuleWithProviders<SkGoogleAnalyticsModule> {\n return {\n ngModule: SkGoogleAnalyticsModule,\n providers: [\n {\n provide: SK_GOOGLE_ANALYTICS_SETTINGS_TOKEN,\n useValue: {\n trackingCode,\n commands,\n uri\n }\n },\n SK_GOOGLE_ANALYTICS_INITIALIZER_PROVIDER,\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkGoogleAnalyticsModule } from './google-analytics.module';\nimport { SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER } from './initializers/google-analytics-router.initializer';\n\n@NgModule({\n imports: [\n CommonModule,\n SkGoogleAnalyticsModule\n ],\n providers: [\n SK_GOOGLE_ANALYTICS_ROUTER_INITIALIZER_PROVIDER\n ],\n declarations: []\n})\nexport class SkGoogleAnalyticsRouterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, Input, ViewChild, NgModule } from '@angular/core';
3
- import * as i5 from '@angular/common';
3
+ import * as i4 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@angular/material/dialog';
6
6
  import { MatDialogModule } from '@angular/material/dialog';
7
- import * as i4 from 'ng-in-viewport';
7
+ import * as i5 from 'ng-in-viewport';
8
8
  import { InViewportModule } from 'ng-in-viewport';
9
9
  import { HttpParams } from '@angular/common/http';
10
10
  import Viewer from 'viewerjs';
@@ -241,11 +241,11 @@ class SkImageComponent {
241
241
  .append('blur', String(option.blur));
242
242
  }
243
243
  }
244
- SkImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i2.MatDialog }, { token: i3.SkApiService }], target: i0.ɵɵFactoryTarget.Component });
245
- SkImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: SkImageComponent, selector: "sk-image", inputs: { src: "src", imgId: "imgId", skfile: "skfile", option: "option", alt: "alt", imageClass: "imageClass" }, viewQueries: [{ propertyName: "imageElement", first: true, predicate: ["imageElement"], descendants: true }], usesOnChanges: true, ngImport: i0, 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", 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 linear .8s}.img-container>img{display:block;opacity:0;transition:opacity linear .8s}\n"], directives: [{ type: i4.InViewportDirective, selector: "[inViewport]", inputs: ["inViewportOptions"], outputs: ["inViewportAction"] }, { type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageComponent, decorators: [{
244
+ SkImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkImageComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i2.MatDialog }, { token: i3.SkApiService }], target: i0.ɵɵFactoryTarget.Component });
245
+ SkImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SkImageComponent, selector: "sk-image", inputs: { src: "src", imgId: "imgId", skfile: "skfile", option: "option", alt: "alt", imageClass: "imageClass" }, viewQueries: [{ propertyName: "imageElement", first: true, predicate: ["imageElement"], descendants: true }], usesOnChanges: true, ngImport: i0, 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", styles: [":host{display:block}.img-container{position:relative}.img-container:after{display:block;content:\"\";width:100%}.img-container .img-cover{position:absolute;inset:0;width:100%;height:100%;z-index:1;transition:opacity linear .8s}.img-container>img{display:block;opacity:0;transition:opacity linear .8s}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.InViewportDirective, selector: "[inViewport]", inputs: ["inViewportOptions"], outputs: ["inViewportAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkImageComponent, decorators: [{
247
247
  type: Component,
248
- args: [{ selector: 'sk-image', changeDetection: ChangeDetectionStrategy.OnPush, 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", 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 linear .8s}.img-container>img{display:block;opacity:0;transition:opacity linear .8s}\n"] }]
248
+ args: [{ selector: 'sk-image', changeDetection: ChangeDetectionStrategy.OnPush, 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", styles: [":host{display:block}.img-container{position:relative}.img-container:after{display:block;content:\"\";width:100%}.img-container .img-cover{position:absolute;inset:0;width:100%;height:100%;z-index:1;transition:opacity linear .8s}.img-container>img{display:block;opacity:0;transition:opacity linear .8s}\n"] }]
249
249
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Platform }, { type: i2.MatDialog }, { type: i3.SkApiService }]; }, propDecorators: { src: [{
250
250
  type: Input
251
251
  }], imgId: [{
@@ -265,20 +265,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
265
265
 
266
266
  class SkImageModule {
267
267
  }
268
- SkImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
269
- SkImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageModule, declarations: [SkImageComponent], imports: [CommonModule,
268
+ SkImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
269
+ SkImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SkImageModule, declarations: [SkImageComponent], imports: [CommonModule,
270
270
  InViewportModule,
271
271
  MatDialogModule,
272
272
  MatButtonModule,
273
273
  MatIconModule], exports: [SkImageComponent] });
274
- SkImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageModule, imports: [[
275
- CommonModule,
276
- InViewportModule,
277
- MatDialogModule,
278
- MatButtonModule,
279
- MatIconModule
280
- ]] });
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkImageModule, decorators: [{
274
+ SkImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkImageModule, imports: [CommonModule,
275
+ InViewportModule,
276
+ MatDialogModule,
277
+ MatButtonModule,
278
+ MatIconModule] });
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SkImageModule, decorators: [{
282
280
  type: NgModule,
283
281
  args: [{
284
282
  imports: [
@@ -293,8 +291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
293
291
  ],
294
292
  exports: [
295
293
  SkImageComponent
296
- ],
297
- entryComponents: []
294
+ ]
298
295
  }]
299
296
  }] });
300
297
 
@@ -1 +1 @@
1
- {"version":3,"file":"sk-front-lib-image.mjs","sources":["../../../projects/sk-front-lib/image/src/sk-image.component.ts","../../../projects/sk-front-lib/image/src/sk-image.component.html","../../../projects/sk-front-lib/image/src/sk-image.module.ts","../../../projects/sk-front-lib/image/src/sk-front-lib-image.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport { HttpParams } from '@angular/common/http';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { SkApiService } from 'sk-front-lib/api';\nimport { SkFile } from 'sk-front-lib/model';\n\nimport Viewer from 'viewerjs';\n\ninterface IMetadata {\n width?: number;\n height?: number;\n color?: string;\n}\n\nexport interface SkImageOptions {\n mode?: 'img' | 'css';\n width?: number;\n height?: number;\n resizeType?: 'ratio_crop' | 'ratio_fill';\n resizeBgColor?: string;\n filter?: 'gray' | '';\n blur?: number;\n clickable?: boolean;\n coverBackground?: string;\n previewColor?: string;\n}\n\n@Component({\n selector: 'sk-image',\n templateUrl: './sk-image.component.html',\n styleUrls: ['./sk-image.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkImageComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n mode: 'skfile' | 'imgId' | 'src' | 'fallback' = 'imgId';\n defaultOption: SkImageOptions = {\n mode: 'img',\n width: 0,\n height: 0,\n resizeType: 'ratio_crop',\n resizeBgColor: '',\n filter: '',\n blur: 0,\n clickable: false,\n coverBackground: null,\n previewColor: ''\n };\n currentOption: SkImageOptions = {};\n\n apiCompleted = false;\n isVisible = false;\n\n @Input() src: string = null;\n @Input() imgId: number = null;\n @Input() skfile: SkFile = null;\n @Input() option: SkImageOptions = {};\n @Input() alt = '';\n @Input() imageClass: string[] = [];\n waitSrc: string = null;\n activeSrc: string = null;\n originalSrc: string = null;\n\n ratio = 100;\n backgroundColor = '#fff';\n imageOpacity = 0;\n\n @ViewChild('imageElement', {static: false}) imageElement: ElementRef;\n viewerInstance: Viewer;\n viewerOptions = {\n navbar: false,\n backdrop: 'static',\n className: 'sk-custom-viewerjs',\n toolbar: {\n zoomIn: 1,\n zoomOut: 1,\n oneToOne: 1,\n reset: 1,\n },\n movable: true,\n rotatable: false,\n toggleOnDblclick: false,\n };\n\n constructor(private cdRef: ChangeDetectorRef,\n private platform: Platform,\n private dialog: MatDialog,\n private apiService: SkApiService) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // ------------------------------------------1-----------------------------------------------------------\n\n get containerStyle() {\n if (this.mode === 'imgId' || this.mode === 'skfile') {\n return {\n 'padding-bottom': this.ratio + '%',\n height: '0px',\n overflow: 'hidden',\n 'background-color': this.backgroundColor,\n cursor: this.currentOption.clickable ? 'pointer' : 'inherit',\n };\n } else {\n return {\n 'padding-bottom': '0px',\n height: 'auto',\n overflow: 'hidden',\n 'background-color': this.backgroundColor\n };\n }\n }\n\n get imageStyle() {\n if (this.mode === 'imgId') {\n return {\n position: 'absolute',\n width: '100%',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n opacity: this.imageOpacity\n };\n } else {\n return {\n position: 'relative',\n width: '100%',\n opacity: this.imageOpacity\n };\n }\n }\n\n get coverStyle() {\n if (this.option.coverBackground) {\n return {\n background: this.option.coverBackground,\n opacity: this.imageOpacity\n }\n } else {\n return {};\n }\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n ngOnChanges(changes: SimpleChanges): void {\n this._init();\n\n /**\n * skfile, imgId, src 순서로 우선권을 가진다.\n */\n if (!!changes.skfile && !!changes.skfile.currentValue) {\n this.mode = 'skfile';\n this.imgId = this.skfile.id;\n this.loadImageByFile();\n return;\n }\n\n if (!!changes.imgId) {\n this.mode = 'imgId';\n this.loadImageById();\n return;\n }\n\n if (!!changes.src) {\n this.mode = 'src';\n this.loadImageBySrc();\n return;\n }\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n if (this.viewerInstance) {\n this.viewerInstance.destroy();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n loadImageByFile() {\n this.waitSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}?${this.getHttpParam().toString()}`;\n this.originalSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}`;\n\n const metadata = this.skfile as IMetadata;\n if (this.currentOption.width > 0 && this.currentOption.height > 0) {\n this.ratio = this.currentOption.height / this.currentOption.width * 100;\n } else {\n this.ratio = metadata.height / metadata.width * 100;\n }\n\n this.backgroundColor = !!this.currentOption.previewColor ? this.currentOption.previewColor :\n (this.currentOption.filter === 'gray' ? '#fff' : metadata.color);\n\n this.apiCompleted = true;\n this.cdRef.markForCheck();\n this.startImageLoad();\n }\n\n loadImageById() {\n this.apiService.get<SkFile>(`/api/public/images/${this.imgId}/metadata`)\n .subscribe(\n result => {\n this.skfile = result.data;\n this.loadImageByFile();\n },\n error => {\n this.showFallbackImage();\n }\n );\n }\n\n loadImageBySrc() {\n this.waitSrc = this.src;\n this.apiCompleted = true;\n }\n\n showFallbackImage() {\n this.mode = 'fallback';\n this.waitSrc = '/assets/images/no_image_available.jpeg';\n this.apiCompleted = true;\n }\n\n onIntersection(event) {\n if (event.visible) {\n this.isVisible = true;\n if (this.apiCompleted) {\n this.startImageLoad();\n }\n }\n }\n\n startImageLoad() {\n if (!this.activeSrc && this.apiCompleted && this.isVisible) {\n this.activeSrc = this.waitSrc;\n this.cdRef.markForCheck();\n }\n }\n\n onImageLoad() {\n this.imageOpacity = 1;\n this.cdRef.markForCheck();\n }\n\n onImageError() {\n this.activeSrc = null;\n this.showFallbackImage();\n this.startImageLoad();\n }\n\n openDialog() {\n if (this.currentOption.clickable && this.mode !== 'fallback') {\n if (this.viewerInstance) {\n this.viewerInstance.destroy();\n }\n\n this.viewerInstance = new Viewer(this.imageElement.nativeElement, {\n // Transitions currently break the Viewer when running optimizations during ng build (i.e in prod mode)\n // TODO: Find a fix for this so we don't have to force disable transitions\n transition: false,\n url: 'src-viewer',\n ...this.viewerOptions,\n });\n this.viewerInstance.show();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n private _init() {\n this.mode = 'imgId';\n this.imageOpacity = 0;\n this.apiCompleted = false;\n this.activeSrc = null;\n Object.assign(this.currentOption, this.defaultOption, this.option);\n\n this.cdRef.detectChanges();\n }\n\n private getHttpParam(): HttpParams {\n const option: SkImageOptions = this.currentOption;\n\n return new HttpParams()\n .append('w', String(option.width))\n .append('h', String(option.height))\n .append('resize', option.resizeType)\n .append('bgcolor', option.resizeBgColor)\n .append('filter', String(option.filter))\n .append('blur', String(option.blur));\n }\n}\n","<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","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatDialogModule} from '@angular/material/dialog';\n\nimport {InViewportModule} from 'ng-in-viewport';\n\nimport {SkImageComponent} from './sk-image.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n InViewportModule,\n\n MatDialogModule,\n MatButtonModule,\n MatIconModule\n ],\n declarations: [\n SkImageComponent,\n ],\n exports: [\n SkImageComponent\n ],\n entryComponents: [\n ]\n})\nexport class SkImageModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sk-front-lib-image.mjs","sources":["../../../projects/sk-front-lib/image/src/sk-image.component.ts","../../../projects/sk-front-lib/image/src/sk-image.component.html","../../../projects/sk-front-lib/image/src/sk-image.module.ts","../../../projects/sk-front-lib/image/src/sk-front-lib-image.ts"],"sourcesContent":["import { Platform } from '@angular/cdk/platform';\nimport { HttpParams } from '@angular/common/http';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { SkApiService } from 'sk-front-lib/api';\nimport { SkFile } from 'sk-front-lib/model';\n\nimport Viewer from 'viewerjs';\n\ninterface IMetadata {\n width?: number;\n height?: number;\n color?: string;\n}\n\nexport interface SkImageOptions {\n mode?: 'img' | 'css';\n width?: number;\n height?: number;\n resizeType?: 'ratio_crop' | 'ratio_fill';\n resizeBgColor?: string;\n filter?: 'gray' | '';\n blur?: number;\n clickable?: boolean;\n coverBackground?: string;\n previewColor?: string;\n}\n\n@Component({\n selector: 'sk-image',\n templateUrl: './sk-image.component.html',\n styleUrls: ['./sk-image.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SkImageComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n mode: 'skfile' | 'imgId' | 'src' | 'fallback' = 'imgId';\n defaultOption: SkImageOptions = {\n mode: 'img',\n width: 0,\n height: 0,\n resizeType: 'ratio_crop',\n resizeBgColor: '',\n filter: '',\n blur: 0,\n clickable: false,\n coverBackground: null,\n previewColor: ''\n };\n currentOption: SkImageOptions = {};\n\n apiCompleted = false;\n isVisible = false;\n\n @Input() src: string = null;\n @Input() imgId: number = null;\n @Input() skfile: SkFile = null;\n @Input() option: SkImageOptions = {};\n @Input() alt = '';\n @Input() imageClass: string[] = [];\n waitSrc: string = null;\n activeSrc: string = null;\n originalSrc: string = null;\n\n ratio = 100;\n backgroundColor = '#fff';\n imageOpacity = 0;\n\n @ViewChild('imageElement', {static: false}) imageElement: ElementRef;\n viewerInstance: Viewer;\n viewerOptions = {\n navbar: false,\n backdrop: 'static',\n className: 'sk-custom-viewerjs',\n toolbar: {\n zoomIn: 1,\n zoomOut: 1,\n oneToOne: 1,\n reset: 1,\n },\n movable: true,\n rotatable: false,\n toggleOnDblclick: false,\n };\n\n constructor(private cdRef: ChangeDetectorRef,\n private platform: Platform,\n private dialog: MatDialog,\n private apiService: SkApiService) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // ------------------------------------------1-----------------------------------------------------------\n\n get containerStyle() {\n if (this.mode === 'imgId' || this.mode === 'skfile') {\n return {\n 'padding-bottom': this.ratio + '%',\n height: '0px',\n overflow: 'hidden',\n 'background-color': this.backgroundColor,\n cursor: this.currentOption.clickable ? 'pointer' : 'inherit',\n };\n } else {\n return {\n 'padding-bottom': '0px',\n height: 'auto',\n overflow: 'hidden',\n 'background-color': this.backgroundColor\n };\n }\n }\n\n get imageStyle() {\n if (this.mode === 'imgId') {\n return {\n position: 'absolute',\n width: '100%',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n opacity: this.imageOpacity\n };\n } else {\n return {\n position: 'relative',\n width: '100%',\n opacity: this.imageOpacity\n };\n }\n }\n\n get coverStyle() {\n if (this.option.coverBackground) {\n return {\n background: this.option.coverBackground,\n opacity: this.imageOpacity\n }\n } else {\n return {};\n }\n }\n\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n ngOnChanges(changes: SimpleChanges): void {\n this._init();\n\n /**\n * skfile, imgId, src 순서로 우선권을 가진다.\n */\n if (!!changes.skfile && !!changes.skfile.currentValue) {\n this.mode = 'skfile';\n this.imgId = this.skfile.id;\n this.loadImageByFile();\n return;\n }\n\n if (!!changes.imgId) {\n this.mode = 'imgId';\n this.loadImageById();\n return;\n }\n\n if (!!changes.src) {\n this.mode = 'src';\n this.loadImageBySrc();\n return;\n }\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n if (this.viewerInstance) {\n this.viewerInstance.destroy();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n loadImageByFile() {\n this.waitSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}?${this.getHttpParam().toString()}`;\n this.originalSrc = `${this.apiService.apiServer}/api/public/images/${this.imgId}`;\n\n const metadata = this.skfile as IMetadata;\n if (this.currentOption.width > 0 && this.currentOption.height > 0) {\n this.ratio = this.currentOption.height / this.currentOption.width * 100;\n } else {\n this.ratio = metadata.height / metadata.width * 100;\n }\n\n this.backgroundColor = !!this.currentOption.previewColor ? this.currentOption.previewColor :\n (this.currentOption.filter === 'gray' ? '#fff' : metadata.color);\n\n this.apiCompleted = true;\n this.cdRef.markForCheck();\n this.startImageLoad();\n }\n\n loadImageById() {\n this.apiService.get<SkFile>(`/api/public/images/${this.imgId}/metadata`)\n .subscribe(\n result => {\n this.skfile = result.data;\n this.loadImageByFile();\n },\n error => {\n this.showFallbackImage();\n }\n );\n }\n\n loadImageBySrc() {\n this.waitSrc = this.src;\n this.apiCompleted = true;\n }\n\n showFallbackImage() {\n this.mode = 'fallback';\n this.waitSrc = '/assets/images/no_image_available.jpeg';\n this.apiCompleted = true;\n }\n\n onIntersection(event) {\n if (event.visible) {\n this.isVisible = true;\n if (this.apiCompleted) {\n this.startImageLoad();\n }\n }\n }\n\n startImageLoad() {\n if (!this.activeSrc && this.apiCompleted && this.isVisible) {\n this.activeSrc = this.waitSrc;\n this.cdRef.markForCheck();\n }\n }\n\n onImageLoad() {\n this.imageOpacity = 1;\n this.cdRef.markForCheck();\n }\n\n onImageError() {\n this.activeSrc = null;\n this.showFallbackImage();\n this.startImageLoad();\n }\n\n openDialog() {\n if (this.currentOption.clickable && this.mode !== 'fallback') {\n if (this.viewerInstance) {\n this.viewerInstance.destroy();\n }\n\n this.viewerInstance = new Viewer(this.imageElement.nativeElement, {\n // Transitions currently break the Viewer when running optimizations during ng build (i.e in prod mode)\n // TODO: Find a fix for this so we don't have to force disable transitions\n transition: false,\n url: 'src-viewer',\n ...this.viewerOptions,\n });\n this.viewerInstance.show();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n private _init() {\n this.mode = 'imgId';\n this.imageOpacity = 0;\n this.apiCompleted = false;\n this.activeSrc = null;\n Object.assign(this.currentOption, this.defaultOption, this.option);\n\n this.cdRef.detectChanges();\n }\n\n private getHttpParam(): HttpParams {\n const option: SkImageOptions = this.currentOption;\n\n return new HttpParams()\n .append('w', String(option.width))\n .append('h', String(option.height))\n .append('resize', option.resizeType)\n .append('bgcolor', option.resizeBgColor)\n .append('filter', String(option.filter))\n .append('blur', String(option.blur));\n }\n}\n","<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","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatDialogModule} from '@angular/material/dialog';\n\nimport {InViewportModule} from 'ng-in-viewport';\n\nimport {SkImageComponent} from './sk-image.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\n\n@NgModule({\n imports: [\n CommonModule,\n InViewportModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule\n ],\n declarations: [\n SkImageComponent,\n ],\n exports: [\n SkImageComponent\n ]\n})\nexport class SkImageModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}