@lenne.tech/ng-base 12.1.0 → 13.2.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.
- package/base-components/base-components.module.d.ts +12 -0
- package/base-components/components/checkbox/checkbox.component.d.ts +11 -0
- package/base-components/components/input/input.component.d.ts +14 -0
- package/base-components/components/select/select.component.d.ts +19 -0
- package/base-components/components/textarea/textarea.component.d.ts +13 -0
- package/base-components/lenne.tech-ng-base-base-components.d.ts +5 -0
- package/base-components/package.json +10 -0
- package/base-components/public-api.d.ts +8 -0
- package/base-prototype/base-prototype.module.d.ts +12 -0
- package/{src/lib/base/lenne.tech-ng-base-src-lib-base.d.ts → base-prototype/lenne.tech-ng-base-base-prototype.d.ts} +1 -0
- package/base-prototype/package.json +10 -0
- package/base-prototype/pages/login/login.component.d.ts +20 -0
- package/base-prototype/pages/register/register.component.d.ts +20 -0
- package/base-prototype/public-api.d.ts +6 -0
- package/esm2020/base-components/base-components.module.mjs +42 -0
- package/esm2020/base-components/components/checkbox/checkbox.component.mjs +28 -0
- package/esm2020/base-components/components/input/input.component.mjs +36 -0
- package/esm2020/base-components/components/select/select.component.mjs +37 -0
- package/esm2020/base-components/components/textarea/textarea.component.mjs +35 -0
- package/esm2020/base-components/lenne.tech-ng-base-base-components.mjs +5 -0
- package/esm2020/base-components/public-api.mjs +11 -0
- package/esm2020/base-prototype/base-prototype.module.mjs +36 -0
- package/esm2020/base-prototype/lenne.tech-ng-base-base-prototype.mjs +5 -0
- package/esm2020/base-prototype/pages/login/login.component.mjs +39 -0
- package/esm2020/base-prototype/pages/register/register.component.mjs +45 -0
- package/esm2020/base-prototype/public-api.mjs +9 -0
- package/esm2020/lenne.tech-ng-base.mjs +5 -0
- package/esm2020/public-api.mjs +66 -0
- package/esm2020/src/base.module.mjs +101 -0
- package/esm2020/src/classes/basic-user.class.mjs +51 -0
- package/esm2020/src/classes/graphql-enum.class.mjs +9 -0
- package/esm2020/src/classes/graphql-meta.class.mjs +171 -0
- package/esm2020/src/classes/graphql-type.class.mjs +13 -0
- package/esm2020/src/classes/helper.class.mjs +304 -0
- package/esm2020/src/classes/standard.class.mjs +40 -0
- package/esm2020/src/directives/context-menu.directive.mjs +109 -0
- package/esm2020/src/directives/lazy-load.directive.mjs +45 -0
- package/esm2020/src/directives/match-height.directive.mjs +79 -0
- package/esm2020/src/directives/resizable.directive.mjs +90 -0
- package/esm2020/src/enums/comparison-operator.enum.mjs +16 -0
- package/esm2020/src/enums/graphql-request-type.enum.mjs +10 -0
- package/esm2020/src/enums/logical-operator.enum.mjs +10 -0
- package/esm2020/src/enums/sort-order.enum.mjs +6 -0
- package/esm2020/src/factories/apollo-options.factory.mjs +61 -0
- package/esm2020/src/guards/auth.guard.mjs +61 -0
- package/esm2020/src/guards/can-deactivate.guard.mjs +16 -0
- package/esm2020/src/guards/logout.guard.mjs +32 -0
- package/esm2020/src/interfaces/base-module-config.interface.mjs +3 -0
- package/esm2020/src/interfaces/can-component-deactivate.interface.mjs +2 -0
- package/esm2020/src/interfaces/combined-filter-input.interface.mjs +2 -0
- package/esm2020/src/interfaces/field-object.interface.mjs +2 -0
- package/esm2020/src/interfaces/field.interface.mjs +2 -0
- package/esm2020/src/interfaces/filter-input.interface.mjs +2 -0
- package/esm2020/src/interfaces/find-args.interface.mjs +2 -0
- package/esm2020/src/interfaces/graphql-fields-object.interface.mjs +2 -0
- package/esm2020/src/interfaces/graphql-options.interface.mjs +2 -0
- package/esm2020/src/interfaces/graphql-plus-options.interfacen.mjs +2 -0
- package/esm2020/src/interfaces/graphql-type-collection.interface.mjs +2 -0
- package/esm2020/src/interfaces/single-filter-input.interface.mjs +2 -0
- package/esm2020/src/interfaces/sort-input.interface.mjs +2 -0
- package/esm2020/src/pipes/date-ago.pipe.mjs +65 -0
- package/esm2020/src/pipes/ellipses.pipe.mjs +22 -0
- package/esm2020/src/pipes/safe-html.pipe.mjs +21 -0
- package/esm2020/src/services/auth.service.mjs +71 -0
- package/esm2020/src/services/forms.service.mjs +26 -0
- package/esm2020/src/services/fullscreen.service.mjs +51 -0
- package/esm2020/src/services/graphql-meta.service.mjs +123 -0
- package/esm2020/src/services/graphql-plus.service.mjs +84 -0
- package/esm2020/src/services/graphql.service.mjs +441 -0
- package/esm2020/src/services/image.service.mjs +102 -0
- package/esm2020/src/services/loader.service.mjs +29 -0
- package/esm2020/src/services/scroll.service.mjs +179 -0
- package/esm2020/src/services/seo.service.mjs +97 -0
- package/esm2020/src/services/storage.service.mjs +132 -0
- package/esm2020/src/services/theme.service.mjs +43 -0
- package/esm2020/src/services/ws.service.mjs +17 -0
- package/esm2020/src/types/graphql-fields.type.mjs +2 -0
- package/esm2020/src/types/storage.type.mjs +2 -0
- package/esm2020/src/validators/must-match.validator.mjs +22 -0
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +173 -0
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -0
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +122 -0
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -0
- package/fesm2015/{lenne.tech-ng-base.js → lenne.tech-ng-base.mjs} +385 -206
- package/fesm2015/lenne.tech-ng-base.mjs.map +1 -0
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +171 -0
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -0
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +120 -0
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -0
- package/{fesm2015/lenne.tech-ng-base-src-lib-base.js → fesm2020/lenne.tech-ng-base.mjs} +585 -350
- package/fesm2020/lenne.tech-ng-base.mjs.map +1 -0
- package/lenne.tech-ng-base.d.ts +1 -0
- package/package.json +48 -19
- package/public-api.d.ts +54 -1
- package/src/base.module.d.ts +22 -0
- package/src/{lib/base/classes → classes}/basic-user.class.d.ts +0 -0
- package/src/{lib/base/classes → classes}/graphql-enum.class.d.ts +0 -0
- package/{lib/base → src}/classes/graphql-meta.class.d.ts +2 -4
- package/src/{lib/base/classes → classes}/graphql-type.class.d.ts +0 -0
- package/{lib/base → src}/classes/helper.class.d.ts +1 -0
- package/src/{lib/base/classes → classes}/standard.class.d.ts +0 -0
- package/src/{lib/base/directives → directives}/context-menu.directive.d.ts +3 -0
- package/{lib/base → src}/directives/lazy-load.directive.d.ts +3 -0
- package/src/{lib/base/directives → directives}/match-height.directive.d.ts +3 -0
- package/{lib/base → src}/directives/resizable.directive.d.ts +3 -0
- package/src/{lib/base/enums → enums}/comparison-operator.enum.d.ts +0 -0
- package/src/{lib/base/enums → enums}/graphql-request-type.enum.d.ts +0 -0
- package/src/{lib/base/enums → enums}/logical-operator.enum.d.ts +0 -0
- package/src/{lib/base/enums → enums}/sort-order.enum.d.ts +0 -0
- package/src/{lib/base/factories → factories}/apollo-options.factory.d.ts +0 -0
- package/src/{lib/base/guards → guards}/auth.guard.d.ts +3 -0
- package/src/{lib/base/guards → guards}/can-deactivate.guard.d.ts +3 -0
- package/{lib/base → src}/guards/logout.guard.d.ts +3 -0
- package/src/{lib/base/interfaces → interfaces}/base-module-config.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/can-component-deactivate.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/combined-filter-input.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/field-object.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/field.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/filter-input.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/find-args.interface.d.ts +0 -0
- package/src/interfaces/graphql-fields-object.interface.d.ts +6 -0
- package/src/{lib/base/interfaces → interfaces}/graphql-options.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/graphql-plus-options.interfacen.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/graphql-type-collection.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/single-filter-input.interface.d.ts +0 -0
- package/src/{lib/base/interfaces → interfaces}/sort-input.interface.d.ts +0 -0
- package/src/pipes/date-ago.pipe.d.ts +34 -0
- package/{lib/base → src}/pipes/ellipses.pipe.d.ts +3 -0
- package/{lib/base → src}/pipes/safe-html.pipe.d.ts +3 -0
- package/{lib/base → src}/services/auth.service.d.ts +3 -0
- package/src/services/forms.service.d.ts +8 -0
- package/src/{lib/base/services → services}/fullscreen.service.d.ts +3 -0
- package/src/{lib/base/services → services}/graphql-meta.service.d.ts +3 -0
- package/src/{lib/base/services → services}/graphql-plus.service.d.ts +3 -0
- package/src/{lib/base/services → services}/graphql.service.d.ts +3 -0
- package/src/{lib/base/services → services}/image.service.d.ts +3 -0
- package/{lib/base → src}/services/loader.service.d.ts +3 -0
- package/src/{lib/base/services → services}/scroll.service.d.ts +3 -0
- package/src/{lib/base/services → services}/seo.service.d.ts +3 -0
- package/{lib/base → src}/services/storage.service.d.ts +3 -0
- package/src/services/theme.service.d.ts +17 -0
- package/src/services/ws.service.d.ts +8 -0
- package/src/types/graphql-fields.type.d.ts +5 -0
- package/src/{lib/base/types → types}/storage.type.d.ts +0 -0
- package/{lib/base → src}/validators/must-match.validator.d.ts +2 -2
- package/bundles/lenne.tech-ng-base-src-lib-base.umd.js +0 -3152
- package/bundles/lenne.tech-ng-base-src-lib-base.umd.js.map +0 -1
- package/bundles/lenne.tech-ng-base.umd.js +0 -3154
- package/bundles/lenne.tech-ng-base.umd.js.map +0 -1
- package/esm2015/lenne.tech-ng-base.js +0 -5
- package/esm2015/lib/base/base.module.js +0 -66
- package/esm2015/lib/base/classes/basic-user.class.js +0 -51
- package/esm2015/lib/base/classes/graphql-enum.class.js +0 -9
- package/esm2015/lib/base/classes/graphql-meta.class.js +0 -156
- package/esm2015/lib/base/classes/graphql-type.class.js +0 -13
- package/esm2015/lib/base/classes/helper.class.js +0 -290
- package/esm2015/lib/base/classes/standard.class.js +0 -40
- package/esm2015/lib/base/directives/context-menu.directive.js +0 -104
- package/esm2015/lib/base/directives/lazy-load.directive.js +0 -43
- package/esm2015/lib/base/directives/match-height.directive.js +0 -78
- package/esm2015/lib/base/directives/resizable.directive.js +0 -89
- package/esm2015/lib/base/enums/comparison-operator.enum.js +0 -16
- package/esm2015/lib/base/enums/graphql-request-type.enum.js +0 -10
- package/esm2015/lib/base/enums/logical-operator.enum.js +0 -10
- package/esm2015/lib/base/enums/sort-order.enum.js +0 -6
- package/esm2015/lib/base/factories/apollo-options.factory.js +0 -61
- package/esm2015/lib/base/guards/auth.guard.js +0 -61
- package/esm2015/lib/base/guards/can-deactivate.guard.js +0 -13
- package/esm2015/lib/base/guards/logout.guard.js +0 -33
- package/esm2015/lib/base/index.js +0 -2
- package/esm2015/lib/base/interfaces/base-module-config.interface.js +0 -3
- package/esm2015/lib/base/interfaces/can-component-deactivate.interface.js +0 -2
- package/esm2015/lib/base/interfaces/combined-filter-input.interface.js +0 -2
- package/esm2015/lib/base/interfaces/field-object.interface.js +0 -2
- package/esm2015/lib/base/interfaces/field.interface.js +0 -2
- package/esm2015/lib/base/interfaces/filter-input.interface.js +0 -2
- package/esm2015/lib/base/interfaces/find-args.interface.js +0 -2
- package/esm2015/lib/base/interfaces/graphql-options.interface.js +0 -2
- package/esm2015/lib/base/interfaces/graphql-plus-options.interfacen.js +0 -2
- package/esm2015/lib/base/interfaces/graphql-type-collection.interface.js +0 -2
- package/esm2015/lib/base/interfaces/single-filter-input.interface.js +0 -2
- package/esm2015/lib/base/interfaces/sort-input.interface.js +0 -2
- package/esm2015/lib/base/pipes/ellipses.pipe.js +0 -18
- package/esm2015/lib/base/pipes/safe-html.pipe.js +0 -20
- package/esm2015/lib/base/public-api.js +0 -61
- package/esm2015/lib/base/services/auth.service.js +0 -74
- package/esm2015/lib/base/services/fullscreen.service.js +0 -50
- package/esm2015/lib/base/services/graphql-meta.service.js +0 -116
- package/esm2015/lib/base/services/graphql-plus.service.js +0 -90
- package/esm2015/lib/base/services/graphql.service.js +0 -423
- package/esm2015/lib/base/services/image.service.js +0 -99
- package/esm2015/lib/base/services/loader.service.js +0 -27
- package/esm2015/lib/base/services/scroll.service.js +0 -172
- package/esm2015/lib/base/services/seo.service.js +0 -100
- package/esm2015/lib/base/services/storage.service.js +0 -131
- package/esm2015/lib/base/services/ws.service.js +0 -16
- package/esm2015/lib/base/types/storage.type.js +0 -2
- package/esm2015/lib/base/validators/must-match.validator.js +0 -22
- package/esm2015/public-api.js +0 -3
- package/esm2015/src/lib/base/base.module.js +0 -66
- package/esm2015/src/lib/base/classes/basic-user.class.js +0 -51
- package/esm2015/src/lib/base/classes/graphql-enum.class.js +0 -9
- package/esm2015/src/lib/base/classes/graphql-meta.class.js +0 -156
- package/esm2015/src/lib/base/classes/graphql-type.class.js +0 -13
- package/esm2015/src/lib/base/classes/helper.class.js +0 -290
- package/esm2015/src/lib/base/classes/standard.class.js +0 -40
- package/esm2015/src/lib/base/directives/context-menu.directive.js +0 -104
- package/esm2015/src/lib/base/directives/lazy-load.directive.js +0 -43
- package/esm2015/src/lib/base/directives/match-height.directive.js +0 -78
- package/esm2015/src/lib/base/directives/resizable.directive.js +0 -89
- package/esm2015/src/lib/base/enums/comparison-operator.enum.js +0 -16
- package/esm2015/src/lib/base/enums/graphql-request-type.enum.js +0 -10
- package/esm2015/src/lib/base/enums/logical-operator.enum.js +0 -10
- package/esm2015/src/lib/base/enums/sort-order.enum.js +0 -6
- package/esm2015/src/lib/base/factories/apollo-options.factory.js +0 -61
- package/esm2015/src/lib/base/guards/auth.guard.js +0 -61
- package/esm2015/src/lib/base/guards/can-deactivate.guard.js +0 -13
- package/esm2015/src/lib/base/guards/logout.guard.js +0 -33
- package/esm2015/src/lib/base/interfaces/base-module-config.interface.js +0 -3
- package/esm2015/src/lib/base/interfaces/can-component-deactivate.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/combined-filter-input.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/field-object.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/field.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/filter-input.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/find-args.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/graphql-options.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/graphql-plus-options.interfacen.js +0 -2
- package/esm2015/src/lib/base/interfaces/graphql-type-collection.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/single-filter-input.interface.js +0 -2
- package/esm2015/src/lib/base/interfaces/sort-input.interface.js +0 -2
- package/esm2015/src/lib/base/lenne.tech-ng-base-src-lib-base.js +0 -5
- package/esm2015/src/lib/base/pipes/ellipses.pipe.js +0 -18
- package/esm2015/src/lib/base/pipes/safe-html.pipe.js +0 -20
- package/esm2015/src/lib/base/public-api.js +0 -61
- package/esm2015/src/lib/base/services/auth.service.js +0 -74
- package/esm2015/src/lib/base/services/fullscreen.service.js +0 -50
- package/esm2015/src/lib/base/services/graphql-meta.service.js +0 -116
- package/esm2015/src/lib/base/services/graphql-plus.service.js +0 -90
- package/esm2015/src/lib/base/services/graphql.service.js +0 -423
- package/esm2015/src/lib/base/services/image.service.js +0 -99
- package/esm2015/src/lib/base/services/loader.service.js +0 -27
- package/esm2015/src/lib/base/services/scroll.service.js +0 -172
- package/esm2015/src/lib/base/services/seo.service.js +0 -100
- package/esm2015/src/lib/base/services/storage.service.js +0 -131
- package/esm2015/src/lib/base/services/ws.service.js +0 -16
- package/esm2015/src/lib/base/types/storage.type.js +0 -2
- package/esm2015/src/lib/base/validators/must-match.validator.js +0 -22
- package/fesm2015/lenne.tech-ng-base-src-lib-base.js.map +0 -1
- package/fesm2015/lenne.tech-ng-base.js.map +0 -1
- package/lenne.tech-ng-base.metadata.json +0 -1
- package/lib/base/base.module.d.ts +0 -11
- package/lib/base/classes/basic-user.class.d.ts +0 -26
- package/lib/base/classes/graphql-enum.class.d.ts +0 -7
- package/lib/base/classes/graphql-type.class.d.ts +0 -9
- package/lib/base/classes/standard.class.d.ts +0 -32
- package/lib/base/directives/context-menu.directive.d.ts +0 -19
- package/lib/base/directives/match-height.directive.d.ts +0 -16
- package/lib/base/enums/comparison-operator.enum.d.ts +0 -14
- package/lib/base/enums/graphql-request-type.enum.d.ts +0 -8
- package/lib/base/enums/logical-operator.enum.d.ts +0 -8
- package/lib/base/enums/sort-order.enum.d.ts +0 -4
- package/lib/base/factories/apollo-options.factory.d.ts +0 -18
- package/lib/base/guards/auth.guard.d.ts +0 -24
- package/lib/base/guards/can-deactivate.guard.d.ts +0 -8
- package/lib/base/index.d.ts +0 -1
- package/lib/base/interfaces/base-module-config.interface.d.ts +0 -57
- package/lib/base/interfaces/can-component-deactivate.interface.d.ts +0 -7
- package/lib/base/interfaces/combined-filter-input.interface.d.ts +0 -9
- package/lib/base/interfaces/field-object.interface.d.ts +0 -6
- package/lib/base/interfaces/field.interface.d.ts +0 -5
- package/lib/base/interfaces/filter-input.interface.d.ts +0 -9
- package/lib/base/interfaces/find-args.interface.d.ts +0 -10
- package/lib/base/interfaces/graphql-options.interface.d.ts +0 -11
- package/lib/base/interfaces/graphql-plus-options.interfacen.d.ts +0 -9
- package/lib/base/interfaces/graphql-type-collection.interface.d.ts +0 -7
- package/lib/base/interfaces/single-filter-input.interface.d.ts +0 -11
- package/lib/base/interfaces/sort-input.interface.d.ts +0 -5
- package/lib/base/public-api.d.ts +0 -49
- package/lib/base/services/fullscreen.service.d.ts +0 -15
- package/lib/base/services/graphql-meta.service.d.ts +0 -42
- package/lib/base/services/graphql-plus.service.d.ts +0 -22
- package/lib/base/services/graphql.service.d.ts +0 -53
- package/lib/base/services/image.service.d.ts +0 -24
- package/lib/base/services/scroll.service.d.ts +0 -82
- package/lib/base/services/seo.service.d.ts +0 -46
- package/lib/base/services/ws.service.d.ts +0 -5
- package/lib/base/types/storage.type.d.ts +0 -4
- package/src/lib/base/base.module.d.ts +0 -11
- package/src/lib/base/classes/graphql-meta.class.d.ts +0 -48
- package/src/lib/base/classes/helper.class.d.ts +0 -98
- package/src/lib/base/directives/lazy-load.directive.d.ts +0 -14
- package/src/lib/base/directives/resizable.directive.d.ts +0 -23
- package/src/lib/base/guards/logout.guard.d.ts +0 -13
- package/src/lib/base/lenne.tech-ng-base-src-lib-base.metadata.json +0 -1
- package/src/lib/base/package.json +0 -11
- package/src/lib/base/pipes/ellipses.pipe.d.ts +0 -7
- package/src/lib/base/pipes/safe-html.pipe.d.ts +0 -10
- package/src/lib/base/public-api.d.ts +0 -49
- package/src/lib/base/services/auth.service.d.ts +0 -29
- package/src/lib/base/services/loader.service.d.ts +0 -10
- package/src/lib/base/services/storage.service.d.ts +0 -45
- package/src/lib/base/services/ws.service.d.ts +0 -5
- package/src/lib/base/validators/must-match.validator.d.ts +0 -6
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
|
|
5
|
-
import { ImageService } from './image.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
import * as i2 from "../interfaces/base-module-config.interface";
|
|
9
|
-
import * as i3 from "./image.service";
|
|
10
|
-
/**
|
|
11
|
-
* Scroll service for autoscroll to specific fragments
|
|
12
|
-
*/
|
|
13
|
-
export class ScrollService {
|
|
14
|
-
/**
|
|
15
|
-
* Initializer
|
|
16
|
-
*/
|
|
17
|
-
constructor(router, moduleConfig, imageService) {
|
|
18
|
-
this.router = router;
|
|
19
|
-
this.moduleConfig = moduleConfig;
|
|
20
|
-
this.imageService = imageService;
|
|
21
|
-
/**
|
|
22
|
-
* Is a scroll listener set
|
|
23
|
-
*
|
|
24
|
-
* @protected
|
|
25
|
-
*/
|
|
26
|
-
this.scrollListener = false;
|
|
27
|
-
/**
|
|
28
|
-
* Current scroll timer;
|
|
29
|
-
*
|
|
30
|
-
* @protected
|
|
31
|
-
*/
|
|
32
|
-
this.scrollTimer = -1;
|
|
33
|
-
const config = Object.assign({ scrollDetectionOffset: 200, scrollOffset: 100, scrollSamplingRate: 100 }, moduleConfig);
|
|
34
|
-
this.detectionOffset = config.scrollDetectionOffset;
|
|
35
|
-
this.scrollOffset = config.scrollOffset;
|
|
36
|
-
this.scrollSamplingRate = config.scrollSamplingRate;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Scroll to structureElement with specific ID
|
|
40
|
-
*/
|
|
41
|
-
scrollTo(id, options = {}) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
// Prepare config
|
|
44
|
-
const config = Object.assign({ checkUrl: false, loadImagesBefore: true, resetStyles: false, setOverflow: true, stopPropagation: true }, options);
|
|
45
|
-
// Check current URL
|
|
46
|
-
if (config.checkUrl && this.router.url !== '/' && !this.router.url.startsWith('/#')) {
|
|
47
|
-
yield this.router.navigate(['/'], { fragment: id });
|
|
48
|
-
return !config.stopPropagation;
|
|
49
|
-
}
|
|
50
|
-
// Check if target element exits
|
|
51
|
-
const el = document.getElementById(id);
|
|
52
|
-
if (!el) {
|
|
53
|
-
console.error('Missing scroll element with ID:', id);
|
|
54
|
-
return !config.stopPropagation;
|
|
55
|
-
}
|
|
56
|
-
// Check if body overflow is visible
|
|
57
|
-
// This is necessary for scroll handling
|
|
58
|
-
const body = document.querySelector('body');
|
|
59
|
-
let undoOverflowChanges = false;
|
|
60
|
-
const scrollBodyStyles = JSON.parse(JSON.stringify(window.getComputedStyle(body)));
|
|
61
|
-
if (config.setOverflow && (scrollBodyStyles.overflowX !== 'visible' || scrollBodyStyles.overflowY !== 'visible')) {
|
|
62
|
-
// Set body overflow to visible
|
|
63
|
-
console.warn('Style of body element for overflowX and overflowY will be set to "visible" for scrolling!');
|
|
64
|
-
body.style.overflowX = 'visible';
|
|
65
|
-
body.style.overflowY = 'visible';
|
|
66
|
-
undoOverflowChanges = true;
|
|
67
|
-
}
|
|
68
|
-
// Load images before scrolling (once)
|
|
69
|
-
if (config.loadImagesBefore) {
|
|
70
|
-
yield this.imageService.preLoadImages();
|
|
71
|
-
}
|
|
72
|
-
// Get get bounding rect of target element
|
|
73
|
-
const cords = el.getBoundingClientRect();
|
|
74
|
-
// Scroll to element
|
|
75
|
-
window.scrollBy({ top: cords.top - this.scrollOffset, behavior: 'smooth' });
|
|
76
|
-
yield this.scrollDone({
|
|
77
|
-
doneFunction: () => {
|
|
78
|
-
// Undo changes
|
|
79
|
-
if (undoOverflowChanges && config.resetStyles) {
|
|
80
|
-
body.style.overflowX = scrollBodyStyles.overflowX;
|
|
81
|
-
body.style.overflowY = scrollBodyStyles.overflowY;
|
|
82
|
-
console.warn('Original style of body element for overflowX and overflowY is set.');
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
});
|
|
86
|
-
// Return stop propagation configuration
|
|
87
|
-
return !config.stopPropagation;
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get last active structureElement
|
|
92
|
-
*/
|
|
93
|
-
getLastActiveElement(list) {
|
|
94
|
-
const currentScrollPosition = window.scrollY;
|
|
95
|
-
const elementsWithId = document.querySelectorAll('[id]');
|
|
96
|
-
let lastId = null;
|
|
97
|
-
let lastPosition = 0 - this.detectionOffset - 1;
|
|
98
|
-
elementsWithId.forEach((element) => {
|
|
99
|
-
const cords = element.getBoundingClientRect();
|
|
100
|
-
const top = cords.top + window.pageYOffset - this.detectionOffset;
|
|
101
|
-
if ((!list || !list.length || list.includes(element.id)) && // In list
|
|
102
|
-
top < currentScrollPosition && // In active area
|
|
103
|
-
lastPosition < top // Higher than the last one
|
|
104
|
-
) {
|
|
105
|
-
lastId = element.id;
|
|
106
|
-
lastPosition = top;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
return lastId;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Check if ID is active
|
|
113
|
-
*/
|
|
114
|
-
isActive(id, list, isFirst) {
|
|
115
|
-
const lastActiveElement = this.getLastActiveElement(list);
|
|
116
|
-
return id === lastActiveElement || (lastActiveElement === null && isFirst);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Scroll done promise
|
|
120
|
-
*/
|
|
121
|
-
scrollDone(options = {}) {
|
|
122
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
// Init configuration
|
|
124
|
-
const config = Object.assign({ doneFunction: undefined }, options);
|
|
125
|
-
// Wait for scroll done
|
|
126
|
-
yield this.scrollDoneDetection();
|
|
127
|
-
// Get result
|
|
128
|
-
if (config.doneFunction) {
|
|
129
|
-
return config.doneFunction();
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Scroll done detecton
|
|
135
|
-
*
|
|
136
|
-
* @protected
|
|
137
|
-
*/
|
|
138
|
-
scrollDoneDetection() {
|
|
139
|
-
// Return current scroll promise (Singelton)
|
|
140
|
-
if (this.scrollPromise) {
|
|
141
|
-
return this.scrollPromise;
|
|
142
|
-
}
|
|
143
|
-
// Create current scroll promise
|
|
144
|
-
this.scrollPromise = new Promise((resolve) => {
|
|
145
|
-
this.scrollPromiseResolve = resolve;
|
|
146
|
-
if (this.scrollTimer !== -1) {
|
|
147
|
-
window.clearTimeout(this.scrollTimer);
|
|
148
|
-
}
|
|
149
|
-
this.scrollTimer = window.setTimeout(() => {
|
|
150
|
-
window.removeEventListener('scroll', this.scrollDoneDetection.bind(this));
|
|
151
|
-
this.scrollPromise = undefined;
|
|
152
|
-
resolve();
|
|
153
|
-
}, this.scrollSamplingRate);
|
|
154
|
-
});
|
|
155
|
-
// Lisitening to scroll event;
|
|
156
|
-
window.addEventListener('scroll', this.scrollDoneDetection.bind(this));
|
|
157
|
-
// Return promise
|
|
158
|
-
return this.scrollPromise;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
ScrollService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ScrollService_Factory() { return new ScrollService(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.BASE_MODULE_CONFIG), i0.ɵɵinject(i3.ImageService)); }, token: ScrollService, providedIn: "root" });
|
|
162
|
-
ScrollService.decorators = [
|
|
163
|
-
{ type: Injectable, args: [{
|
|
164
|
-
providedIn: 'root',
|
|
165
|
-
},] }
|
|
166
|
-
];
|
|
167
|
-
ScrollService.ctorParameters = () => [
|
|
168
|
-
{ type: Router },
|
|
169
|
-
{ type: undefined, decorators: [{ type: Inject, args: [BASE_MODULE_CONFIG,] }] },
|
|
170
|
-
{ type: ImageService }
|
|
171
|
-
];
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9zY3JvbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUE2Q3hCOztPQUVHO0lBQ0gsWUFDWSxNQUFjLEVBQ2MsWUFBOEIsRUFDMUQsWUFBMEI7UUFGMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNjLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUMxRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXBDdEM7Ozs7V0FJRztRQUNPLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRWpDOzs7O1dBSUc7UUFDTyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBMEJ6QixNQUFNLE1BQU0sbUJBQ1YscUJBQXFCLEVBQUUsR0FBRyxFQUMxQixZQUFZLEVBQUUsR0FBRyxFQUNqQixrQkFBa0IsRUFBRSxHQUFHLElBQ3BCLFlBQVksQ0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNHLFFBQVEsQ0FDWixFQUFVLEVBQ1Ys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LFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdkUsaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs7O1lBN05GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBVFEsTUFBTTs0Q0E0RFYsTUFBTSxTQUFDLGtCQUFrQjtZQTFEckIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJBU0VfTU9EVUxFX0NPTkZJRywgQmFzZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNjcm9sbCBzZXJ2aWNlIGZvciBhdXRvc2Nyb2xsIHRvIHNwZWNpZmljIGZyYWdtZW50c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCBwcm9taXNlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGZ1bmN0aW9uIG9mIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFByb21pc2VSZXNvbHZlOiAodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuICAvKipcbiAgICogSXMgYSBzY3JvbGwgbGlzdGVuZXIgc2V0XG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxMaXN0ZW5lciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCB0aW1lcjtcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFRpbWVyID0gLTE7XG5cbiAgLyoqXG4gICAqIFNjcm9sbCBvZmZzZXRcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogRGV0ZWN0aW9uIG9mZnNldFxuICAgKiBTaG91bGQgYmUgPj0gc2Nyb2xsT2Zmc2V0XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGV0ZWN0aW9uT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNhbXBsaW5nIHJhdGUgZm9yIHNjcm9sbCBkb25lIGRldGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbFNhbXBsaW5nUmF0ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoQkFTRV9NT0RVTEVfQ09ORklHKSBwcm90ZWN0ZWQgbW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnLFxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZVxuICApIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBzY3JvbGxEZXRlY3Rpb25PZmZzZXQ6IDIwMCxcbiAgICAgIHNjcm9sbE9mZnNldDogMTAwLFxuICAgICAgc2Nyb2xsU2FtcGxpbmdSYXRlOiAxMDAsXG4gICAgICAuLi5tb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0ID0gY29uZmlnLnNjcm9sbERldGVjdGlvbk9mZnNldDtcbiAgICB0aGlzLnNjcm9sbE9mZnNldCA9IGNvbmZpZy5zY3JvbGxPZmZzZXQ7XG4gICAgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUgPSBjb25maWcuc2Nyb2xsU2FtcGxpbmdSYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbCB0byBzdHJ1Y3R1cmVFbGVtZW50IHdpdGggc3BlY2lmaWMgSURcbiAgICovXG4gIGFzeW5jIHNjcm9sbFRvKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgY2hlY2tVcmw/OiBib29sZWFuO1xuICAgICAgbG9hZEltYWdlc0JlZm9yZT86IGJvb2xlYW47XG4gICAgICByZXNldFN0eWxlcz86IGJvb2xlYW47XG4gICAgICBzZXRPdmVyZmxvdz86IGJvb2xlYW47XG4gICAgICBzdG9wUHJvcGFnYXRpb24/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApIHtcbiAgICAvLyBQcmVwYXJlIGNvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNoZWNrVXJsOiBmYWxzZSxcbiAgICAgIGxvYWRJbWFnZXNCZWZvcmU6IHRydWUsXG4gICAgICByZXNldFN0eWxlczogZmFsc2UsXG4gICAgICBzZXRPdmVyZmxvdzogdHJ1ZSxcbiAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGN1cnJlbnQgVVJMXG4gICAgaWYgKGNvbmZpZy5jaGVja1VybCAmJiB0aGlzLnJvdXRlci51cmwgIT09ICcvJyAmJiAhdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy8jJykpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddLCB7IGZyYWdtZW50OiBpZCB9KTtcbiAgICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0YXJnZXQgZWxlbWVudCBleGl0c1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pc3Npbmcgc2Nyb2xsIGVsZW1lbnQgd2l0aCBJRDonLCBpZCk7XG4gICAgICByZXR1cm4gIWNvbmZpZy5zdG9wUHJvcGFnYXRpb247XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYm9keSBvdmVyZmxvdyBpcyB2aXNpYmxlXG4gICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHNjcm9sbCBoYW5kbGluZ1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgbGV0IHVuZG9PdmVyZmxvd0NoYW5nZXMgPSBmYWxzZTtcbiAgICBjb25zdCBzY3JvbGxCb2R5U3R5bGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib2R5KSkpO1xuICAgIGlmIChjb25maWcuc2V0T3ZlcmZsb3cgJiYgKHNjcm9sbEJvZHlTdHlsZXMub3ZlcmZsb3dYICE9PSAndmlzaWJsZScgfHwgc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1kgIT09ICd2aXNpYmxlJykpIHtcbiAgICAgIC8vIFNldCBib2R5IG92ZXJmbG93IHRvIHZpc2libGVcbiAgICAgIGNvbnNvbGUud2FybignU3R5bGUgb2YgYm9keSBlbGVtZW50IGZvciBvdmVyZmxvd1ggYW5kIG92ZXJmbG93WSB3aWxsIGJlIHNldCB0byBcInZpc2libGVcIiBmb3Igc2Nyb2xsaW5nIScpO1xuICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1ggPSAndmlzaWJsZSc7XG4gICAgICBib2R5LnN0eWxlLm92ZXJmbG93WSA9ICd2aXNpYmxlJztcbiAgICAgIHVuZG9PdmVyZmxvd0NoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIExvYWQgaW1hZ2VzIGJlZm9yZSBzY3JvbGxpbmcgKG9uY2UpXG4gICAgaWYgKGNvbmZpZy5sb2FkSW1hZ2VzQmVmb3JlKSB7XG4gICAgICBhd2FpdCB0aGlzLmltYWdlU2VydmljZS5wcmVMb2FkSW1hZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGdldCBib3VuZGluZyByZWN0IG9mIHRhcmdldCBlbGVtZW50XG4gICAgY29uc3QgY29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8vIFNjcm9sbCB0byBlbGVtZW50XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiBjb3Jkcy50b3AgLSB0aGlzLnNjcm9sbE9mZnNldCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZSh7XG4gICAgICBkb25lRnVuY3Rpb246ICgpID0+IHtcbiAgICAgICAgLy8gVW5kbyBjaGFuZ2VzXG4gICAgICAgIGlmICh1bmRvT3ZlcmZsb3dDaGFuZ2VzICYmIGNvbmZpZy5yZXNldFN0eWxlcykge1xuICAgICAgICAgIGJvZHkuc3R5bGUub3ZlcmZsb3dYID0gc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1g7XG4gICAgICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1kgPSBzY3JvbGxCb2R5U3R5bGVzLm92ZXJmbG93WTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ09yaWdpbmFsIHN0eWxlIG9mIGJvZHkgZWxlbWVudCBmb3Igb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgaXMgc2V0LicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJuIHN0b3AgcHJvcGFnYXRpb24gY29uZmlndXJhdGlvblxuICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGFzdCBhY3RpdmUgc3RydWN0dXJlRWxlbWVudFxuICAgKi9cbiAgZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdD8pOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGVsZW1lbnRzV2l0aElkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkXScpO1xuICAgIGxldCBsYXN0SWQgPSBudWxsO1xuICAgIGxldCBsYXN0UG9zaXRpb24gPSAwIC0gdGhpcy5kZXRlY3Rpb25PZmZzZXQgLSAxO1xuICAgIGVsZW1lbnRzV2l0aElkLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGNvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvcCA9IGNvcmRzLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0O1xuICAgICAgaWYgKFxuICAgICAgICAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoIHx8IGxpc3QuaW5jbHVkZXMoZWxlbWVudC5pZCkpICYmIC8vIEluIGxpc3RcbiAgICAgICAgdG9wIDwgY3VycmVudFNjcm9sbFBvc2l0aW9uICYmIC8vIEluIGFjdGl2ZSBhcmVhXG4gICAgICAgIGxhc3RQb3NpdGlvbiA8IHRvcCAvLyBIaWdoZXIgdGhhbiB0aGUgbGFzdCBvbmVcbiAgICAgICkge1xuICAgICAgICBsYXN0SWQgPSBlbGVtZW50LmlkO1xuICAgICAgICBsYXN0UG9zaXRpb24gPSB0b3A7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxhc3RJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBJRCBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlKGlkLCBsaXN0PywgaXNGaXJzdD8pIHtcbiAgICBjb25zdCBsYXN0QWN0aXZlRWxlbWVudCA9IHRoaXMuZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdCk7XG4gICAgcmV0dXJuIGlkID09PSBsYXN0QWN0aXZlRWxlbWVudCB8fCAobGFzdEFjdGl2ZUVsZW1lbnQgPT09IG51bGwgJiYgaXNGaXJzdCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xsIGRvbmUgcHJvbWlzZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNjcm9sbERvbmUob3B0aW9uczogeyBkb25lRnVuY3Rpb24/OiAoKSA9PiBhbnkgfCB2b2lkIH0gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gSW5pdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZG9uZUZ1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBXYWl0IGZvciBzY3JvbGwgZG9uZVxuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbigpO1xuXG4gICAgLy8gR2V0IHJlc3VsdFxuICAgIGlmIChjb25maWcuZG9uZUZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmRvbmVGdW5jdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGwgZG9uZSBkZXRlY3RvblxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2Nyb2xsRG9uZURldGVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBSZXR1cm4gY3VycmVudCBzY3JvbGwgcHJvbWlzZSAoU2luZ2VsdG9uKVxuICAgIGlmICh0aGlzLnNjcm9sbFByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnNjcm9sbFByb21pc2U7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICB0aGlzLnNjcm9sbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxQcm9taXNlUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUaW1lciAhPT0gLTEpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVyKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2Nyb2xsVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbERvbmVEZXRlY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUpO1xuICAgIH0pO1xuXG4gICAgLy8gTGlzaXRlbmluZyB0byBzY3JvbGwgZXZlbnQ7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbi5iaW5kKHRoaXMpKTtcblxuICAgIC8vIFJldHVybiBwcm9taXNlXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsUHJvbWlzZTtcbiAgfVxufVxuIl19
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Meta, Title } from '@angular/platform-browser';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/platform-browser";
|
|
5
|
-
/**
|
|
6
|
-
* SEO service for setting HTML meta data
|
|
7
|
-
*/
|
|
8
|
-
export class SEOService {
|
|
9
|
-
constructor(titleService, metaTagService) {
|
|
10
|
-
this.titleService = titleService;
|
|
11
|
-
this.metaTagService = metaTagService;
|
|
12
|
-
}
|
|
13
|
-
initPageForSEO(input) {
|
|
14
|
-
this.setGeneralData(input);
|
|
15
|
-
this.setTwitterData(input);
|
|
16
|
-
this.setTwitterData(input);
|
|
17
|
-
this.setFacebookData(input);
|
|
18
|
-
if (input.keywords) {
|
|
19
|
-
this.setPageKeywords(input.keywords);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Set general metadata
|
|
24
|
-
*
|
|
25
|
-
* @param data
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
setGeneralData(data) {
|
|
29
|
-
this.titleService.setTitle(data.title);
|
|
30
|
-
this.metaTagService.updateTag({ name: 'description', content: data.description });
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Set metadata for twitter
|
|
34
|
-
*
|
|
35
|
-
* @param data
|
|
36
|
-
* @private
|
|
37
|
-
*/
|
|
38
|
-
setTwitterData(data) {
|
|
39
|
-
this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });
|
|
40
|
-
this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });
|
|
41
|
-
this.metaTagService.updateTag({
|
|
42
|
-
property: 'twitter:url',
|
|
43
|
-
content: data.url ? data.url : window.location.href,
|
|
44
|
-
});
|
|
45
|
-
if (data.image) {
|
|
46
|
-
this.metaTagService.updateTag({
|
|
47
|
-
property: 'twitter:image',
|
|
48
|
-
content: data.image,
|
|
49
|
-
});
|
|
50
|
-
this.metaTagService.updateTag({
|
|
51
|
-
property: 'twitter:card',
|
|
52
|
-
content: 'summary_large_image',
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Set metadata for facebook
|
|
58
|
-
*
|
|
59
|
-
* @param data
|
|
60
|
-
* @private
|
|
61
|
-
*/
|
|
62
|
-
setFacebookData(data) {
|
|
63
|
-
this.metaTagService.updateTag({ property: 'og:title', content: data.title });
|
|
64
|
-
this.metaTagService.updateTag({ property: 'og:description', content: data.description });
|
|
65
|
-
this.metaTagService.updateTag({
|
|
66
|
-
property: 'og:type',
|
|
67
|
-
content: 'website',
|
|
68
|
-
});
|
|
69
|
-
this.metaTagService.updateTag({
|
|
70
|
-
property: 'og:url',
|
|
71
|
-
content: data.url ? data.url : window.location.href,
|
|
72
|
-
});
|
|
73
|
-
if (data.image) {
|
|
74
|
-
this.metaTagService.updateTag({
|
|
75
|
-
property: 'og:image',
|
|
76
|
-
content: data.image,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Set page keywords
|
|
82
|
-
*
|
|
83
|
-
* @param keywords
|
|
84
|
-
* @private
|
|
85
|
-
*/
|
|
86
|
-
setPageKeywords(keywords) {
|
|
87
|
-
this.metaTagService.updateTag({ name: 'keywords', content: keywords });
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
SEOService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SEOService_Factory() { return new SEOService(i0.ɵɵinject(i1.Title), i0.ɵɵinject(i1.Meta)); }, token: SEOService, providedIn: "root" });
|
|
91
|
-
SEOService.decorators = [
|
|
92
|
-
{ type: Injectable, args: [{
|
|
93
|
-
providedIn: 'root',
|
|
94
|
-
},] }
|
|
95
|
-
];
|
|
96
|
-
SEOService.ctorParameters = () => [
|
|
97
|
-
{ type: Title },
|
|
98
|
-
{ type: Meta }
|
|
99
|
-
];
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVV4RDs7R0FFRztBQUlILE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQW9CLFlBQW1CLEVBQVUsY0FBb0I7UUFBakQsaUJBQVksR0FBWixZQUFZLENBQU87UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBTTtJQUFHLENBQUM7SUFFbEUsY0FBYyxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjLENBQUMsSUFBYTtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjLENBQUMsSUFBYTtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUM1QixRQUFRLEVBQUUsYUFBYTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEVBQUUsZUFBZTtnQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEVBQUUsY0FBYztnQkFDeEIsT0FBTyxFQUFFLHFCQUFxQjthQUMvQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxJQUFhO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzVCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzVCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQzVCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsUUFBZ0I7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Ozs7WUF6RkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFmYyxLQUFLO1lBQVgsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmludGVyZmFjZSBTRU9EYXRhIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAga2V5d29yZHM/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU0VPIHNlcnZpY2UgZm9yIHNldHRpbmcgSFRNTCBtZXRhIGRhdGFcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNFT1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsIHByaXZhdGUgbWV0YVRhZ1NlcnZpY2U6IE1ldGEpIHt9XG5cbiAgcHVibGljIGluaXRQYWdlRm9yU0VPKGlucHV0OiBTRU9EYXRhKSB7XG4gICAgdGhpcy5zZXRHZW5lcmFsRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRUd2l0dGVyRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRUd2l0dGVyRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRGYWNlYm9va0RhdGEoaW5wdXQpO1xuXG4gICAgaWYgKGlucHV0LmtleXdvcmRzKSB7XG4gICAgICB0aGlzLnNldFBhZ2VLZXl3b3JkcyhpbnB1dC5rZXl3b3Jkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBnZW5lcmFsIG1ldGFkYXRhXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEdlbmVyYWxEYXRhKGRhdGE6IFNFT0RhdGEpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShkYXRhLnRpdGxlKTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRhdGEuZGVzY3JpcHRpb24gfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG1ldGFkYXRhIGZvciB0d2l0dGVyXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldFR3aXR0ZXJEYXRhKGRhdGE6IFNFT0RhdGEpIHtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOnRpdGxlJywgY29udGVudDogZGF0YS50aXRsZSB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOmRlc2NyaXB0aW9uJywgY29udGVudDogZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7XG4gICAgICBwcm9wZXJ0eTogJ3R3aXR0ZXI6dXJsJyxcbiAgICAgIGNvbnRlbnQ6IGRhdGEudXJsID8gZGF0YS51cmwgOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9KTtcblxuICAgIGlmIChkYXRhLmltYWdlKSB7XG4gICAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7XG4gICAgICAgIHByb3BlcnR5OiAndHdpdHRlcjppbWFnZScsXG4gICAgICAgIGNvbnRlbnQ6IGRhdGEuaW1hZ2UsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe1xuICAgICAgICBwcm9wZXJ0eTogJ3R3aXR0ZXI6Y2FyZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdzdW1tYXJ5X2xhcmdlX2ltYWdlJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbWV0YWRhdGEgZm9yIGZhY2Vib29rXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEZhY2Vib29rRGF0YShkYXRhOiBTRU9EYXRhKSB7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogZGF0YS50aXRsZSB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UudXBkYXRlVGFnKHtcbiAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICBjb250ZW50OiAnd2Vic2l0ZScsXG4gICAgfSk7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe1xuICAgICAgcHJvcGVydHk6ICdvZzp1cmwnLFxuICAgICAgY29udGVudDogZGF0YS51cmwgPyBkYXRhLnVybCA6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH0pO1xuXG4gICAgaWYgKGRhdGEuaW1hZ2UpIHtcbiAgICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UudXBkYXRlVGFnKHtcbiAgICAgICAgcHJvcGVydHk6ICdvZzppbWFnZScsXG4gICAgICAgIGNvbnRlbnQ6IGRhdGEuaW1hZ2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHBhZ2Uga2V5d29yZHNcbiAgICpcbiAgICogQHBhcmFtIGtleXdvcmRzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldFBhZ2VLZXl3b3JkcyhrZXl3b3Jkczogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBrZXl3b3JkcyB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../interfaces/base-module-config.interface";
|
|
5
|
-
/**
|
|
6
|
-
* Storage service for local data storage
|
|
7
|
-
*/
|
|
8
|
-
export class StorageService {
|
|
9
|
-
/**
|
|
10
|
-
* Initializations
|
|
11
|
-
*/
|
|
12
|
-
constructor(moduleConfig) {
|
|
13
|
-
this.moduleConfig = moduleConfig;
|
|
14
|
-
/**
|
|
15
|
-
* Storage
|
|
16
|
-
*/
|
|
17
|
-
this.storage = null;
|
|
18
|
-
/**
|
|
19
|
-
* Prefix for storage keys
|
|
20
|
-
*/
|
|
21
|
-
this.prefix = '';
|
|
22
|
-
// Set storage
|
|
23
|
-
const type = moduleConfig.storageType ? moduleConfig.storageType : 'local';
|
|
24
|
-
if (window[type + 'Storage']) {
|
|
25
|
-
this.storage = window[type + 'Storage'];
|
|
26
|
-
}
|
|
27
|
-
// Set prefix
|
|
28
|
-
this.prefix = '';
|
|
29
|
-
if (moduleConfig.prefix) {
|
|
30
|
-
this.prefix += moduleConfig.prefix + '_';
|
|
31
|
-
}
|
|
32
|
-
if (moduleConfig.version) {
|
|
33
|
-
this.prefix += moduleConfig.version + '_';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Save itemKeys
|
|
38
|
-
*
|
|
39
|
-
* If you want to save one item, use itemKeys and value parameters like these:
|
|
40
|
-
* save('KEY_OF_THE_ITEM', ITEM)
|
|
41
|
-
*
|
|
42
|
-
* If you want to save multiple items, use itemKeys only (value parameter will be ignored):
|
|
43
|
-
* save({'KEY_OF_ITEM_1': ITEM_1, 'KEY_OF_ITEM_2': ITEM_2, ...})
|
|
44
|
-
*/
|
|
45
|
-
save(itemKeys, value) {
|
|
46
|
-
// Check local storage
|
|
47
|
-
if (!this.storage) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
// Check item keys and value
|
|
51
|
-
if (!itemKeys ||
|
|
52
|
-
(typeof itemKeys === 'object' && !Object.keys(itemKeys).length) ||
|
|
53
|
-
(typeof itemKeys === 'string' && value === undefined)) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
if (typeof itemKeys === 'object') {
|
|
57
|
-
for (const [itemKey, itemValue] of Object.entries(itemKeys)) {
|
|
58
|
-
this.storage.setItem(this.prefix + itemKey, JSON.stringify(itemValue));
|
|
59
|
-
}
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
this.storage.setItem(this.prefix + itemKeys, JSON.stringify(value));
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Load items via key(s)
|
|
67
|
-
*/
|
|
68
|
-
load(itemKeys) {
|
|
69
|
-
// Check local storage
|
|
70
|
-
if (!this.storage) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// Check item keys
|
|
74
|
-
if (!itemKeys || (Array.isArray(itemKeys) && !itemKeys.length)) {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
if (Array.isArray(itemKeys)) {
|
|
78
|
-
const back = {};
|
|
79
|
-
itemKeys.forEach((itemKey) => {
|
|
80
|
-
const loadedItem = this.storage.getItem(this.prefix + itemKey);
|
|
81
|
-
if (loadedItem) {
|
|
82
|
-
back[itemKey] = JSON.parse(loadedItem);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
back[itemKey] = null;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return back;
|
|
89
|
-
}
|
|
90
|
-
let value = this.storage.getItem(this.prefix + itemKeys);
|
|
91
|
-
if (value) {
|
|
92
|
-
value = JSON.parse(value);
|
|
93
|
-
}
|
|
94
|
-
return value;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Remove item from storage
|
|
98
|
-
*
|
|
99
|
-
* @param itemKeys keys or key to remove
|
|
100
|
-
*/
|
|
101
|
-
remove(itemKeys) {
|
|
102
|
-
// Check local storage
|
|
103
|
-
if (!this.storage) {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
if (Array.isArray(itemKeys)) {
|
|
107
|
-
itemKeys.forEach((key) => {
|
|
108
|
-
this.storage.removeItem(this.prefix + key);
|
|
109
|
-
});
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
this.storage.removeItem(this.prefix + itemKeys);
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Clear local storage
|
|
117
|
-
*/
|
|
118
|
-
reset() {
|
|
119
|
-
this.storage.clear();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
StorageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function StorageService_Factory() { return new StorageService(i0.ɵɵinject(i1.BASE_MODULE_CONFIG)); }, token: StorageService, providedIn: "root" });
|
|
123
|
-
StorageService.decorators = [
|
|
124
|
-
{ type: Injectable, args: [{
|
|
125
|
-
providedIn: 'root',
|
|
126
|
-
},] }
|
|
127
|
-
];
|
|
128
|
-
StorageService.ctorParameters = () => [
|
|
129
|
-
{ type: undefined, decorators: [{ type: Inject, args: [BASE_MODULE_CONFIG,] }] }
|
|
130
|
-
];
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zcmMvbGliL2Jhc2Uvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQzs7O0FBRWxHOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFXekI7O09BRUc7SUFDSCxZQUFnRCxZQUE4QjtRQUE5QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFiOUU7O1dBRUc7UUFDTyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBRTlCOztXQUVHO1FBQ08sV0FBTSxHQUFHLEVBQUUsQ0FBQztRQU1wQixjQUFjO1FBQ2QsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzNFLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUM7U0FDekM7UUFFRCxhQUFhO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7U0FDMUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FR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O1lBQzdDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O1lBbklGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQWVjLE1BQU0sU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJBU0VfTU9EVUxFX0NPTkZJRywgQmFzZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogU3RvcmFnZSBzZXJ2aWNlIGZvciBsb2NhbCBkYXRhIHN0b3JhZ2VcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFN0b3JhZ2VcbiAgICovXG4gIHByb3RlY3RlZCBzdG9yYWdlOiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggZm9yIHN0b3JhZ2Uga2V5c1xuICAgKi9cbiAgcHJvdGVjdGVkIHByZWZpeCA9ICcnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXphdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQkFTRV9NT0RVTEVfQ09ORklHKSBwcml2YXRlIG1vZHVsZUNvbmZpZzogQmFzZU1vZHVsZUNvbmZpZykge1xuICAgIC8vIFNldCBzdG9yYWdlXG4gICAgY29uc3QgdHlwZSA9IG1vZHVsZUNvbmZpZy5zdG9yYWdlVHlwZSA/IG1vZHVsZUNvbmZpZy5zdG9yYWdlVHlwZSA6ICdsb2NhbCc7XG4gICAgaWYgKHdpbmRvd1t0eXBlICsgJ1N0b3JhZ2UnXSkge1xuICAgICAgdGhpcy5zdG9yYWdlID0gd2luZG93W3R5cGUgKyAnU3RvcmFnZSddO1xuICAgIH1cblxuICAgIC8vIFNldCBwcmVmaXhcbiAgICB0aGlzLnByZWZpeCA9ICcnO1xuICAgIGlmIChtb2R1bGVDb25maWcucHJlZml4KSB7XG4gICAgICB0aGlzLnByZWZpeCArPSBtb2R1bGVDb25maWcucHJlZml4ICsgJ18nO1xuICAgIH1cbiAgICBpZiAobW9kdWxlQ29uZmlnLnZlcnNpb24pIHtcbiAgICAgIHRoaXMucHJlZml4ICs9IG1vZHVsZUNvbmZpZy52ZXJzaW9uICsgJ18nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGl0ZW1LZXlzXG4gICAqXG4gICAqIElmIHlvdSB3YW50IHRvIHNhdmUgb25lIGl0ZW0sIHVzZSBpdGVtS2V5cyBhbmQgdmFsdWUgcGFyYW1ldGVycyBsaWtlIHRoZXNlOlxuICAgKiBzYXZlKCdLRVlfT0ZfVEhFX0lURU0nLCBJVEVNKVxuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzYXZlIG11bHRpcGxlIGl0ZW1zLCB1c2UgaXRlbUtleXMgb25seSAodmFsdWUgcGFyYW1ldGVyIHdpbGwgYmUgaWdub3JlZCk6XG4gICAqIHNhdmUoeydLRVlfT0ZfSVRFTV8xJzogSVRFTV8xLCAnS0VZX09GX0lURU1fMic6IElURU1fMiwgLi4ufSlcbiAgICovXG4gIHB1YmxpYyBzYXZlKGl0ZW1LZXlzOiBzdHJpbmcgfCB7IFtrZXk6IHN0cmluZ106IGFueSB9LCB2YWx1ZT86IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENoZWNrIGxvY2FsIHN0b3JhZ2VcbiAgICBpZiAoIXRoaXMuc3RvcmFnZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGl0ZW0ga2V5cyBhbmQgdmFsdWVcbiAgICBpZiAoXG4gICAgICAhaXRlbUtleXMgfHxcbiAgICAgICh0eXBlb2YgaXRlbUtleXMgPT09ICdvYmplY3QnICYmICFPYmplY3Qua2V5cyhpdGVtS2V5cykubGVuZ3RoKSB8fFxuICAgICAgKHR5cGVvZiBpdGVtS2V5cyA9PT0gJ3N0cmluZycgJiYgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGl0ZW1LZXlzID09PSAnb2JqZWN0Jykge1xuICAgICAgZm9yIChjb25zdCBbaXRlbUtleSwgaXRlbVZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpdGVtS2V5cykpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0odGhpcy5wcmVmaXggKyBpdGVtS2V5LCBKU09OLnN0cmluZ2lmeShpdGVtVmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleXMsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBpdGVtcyB2aWEga2V5KHMpXG4gICAqL1xuICBwdWJsaWMgbG9hZChpdGVtS2V5czogc3RyaW5nIHwgc3RyaW5nW10pOiBhbnkge1xuICAgIC8vIENoZWNrIGxvY2FsIHN0b3JhZ2VcbiAgICBpZiAoIXRoaXMuc3RvcmFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGl0ZW0ga2V5c1xuICAgIGlmICghaXRlbUtleXMgfHwgKEFycmF5LmlzQXJyYXkoaXRlbUtleXMpICYmICFpdGVtS2V5cy5sZW5ndGgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtS2V5cykpIHtcbiAgICAgIGNvbnN0IGJhY2sgPSB7fTtcbiAgICAgIGl0ZW1LZXlzLmZvckVhY2goKGl0ZW1LZXkpID0+IHtcbiAgICAgICAgY29uc3QgbG9hZGVkSXRlbSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleSk7XG4gICAgICAgIGlmIChsb2FkZWRJdGVtKSB7XG4gICAgICAgICAgYmFja1tpdGVtS2V5XSA9IEpTT04ucGFyc2UobG9hZGVkSXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFja1tpdGVtS2V5XSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGJhY2s7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0odGhpcy5wcmVmaXggKyBpdGVtS2V5cyk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaXRlbSBmcm9tIHN0b3JhZ2VcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1LZXlzIGtleXMgb3Iga2V5IHRvIHJlbW92ZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZShpdGVtS2V5czogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBsb2NhbCBzdG9yYWdlXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtS2V5cykpIHtcbiAgICAgIGl0ZW1LZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnByZWZpeCArIGtleSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleXMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGxvY2FsIHN0b3JhZ2VcbiAgICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class WsService {
|
|
4
|
-
reconnect() {
|
|
5
|
-
var _a, _b;
|
|
6
|
-
(_a = this.client) === null || _a === void 0 ? void 0 : _a.close();
|
|
7
|
-
(_b = this.client) === null || _b === void 0 ? void 0 : _b.connect();
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
WsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function WsService_Factory() { return new WsService(); }, token: WsService, providedIn: "root" });
|
|
11
|
-
WsService.decorators = [
|
|
12
|
-
{ type: Injectable, args: [{
|
|
13
|
-
providedIn: 'root',
|
|
14
|
-
},] }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL3NlcnZpY2VzL3dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLFNBQVM7SUFHcEIsU0FBUzs7UUFDUCxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JCLE1BQUMsSUFBSSxDQUFDLE1BQWMsMENBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7OztZQVRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkNsaWVudCB9IGZyb20gJ3N1YnNjcmlwdGlvbnMtdHJhbnNwb3J0LXdzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdzU2VydmljZSB7XG4gIGNsaWVudDogU3Vic2NyaXB0aW9uQ2xpZW50O1xuXG4gIHJlY29ubmVjdCgpIHtcbiAgICB0aGlzLmNsaWVudD8uY2xvc2UoKTtcbiAgICAodGhpcy5jbGllbnQgYXMgYW55KT8uY29ubmVjdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zcmMvbGliL2Jhc2UvdHlwZXMvc3RvcmFnZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0b3JhZ2UgdHlwZXNcbiAqL1xuZXhwb3J0IHR5cGUgU3RvcmFnZVR5cGUgPSAnbG9jYWwnIHwgJ3Nlc3Npb24nO1xuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom validator to check that two fields match
|
|
3
|
-
* (inspirated by https://jasonwatmore.com/post/2018/11/07/angular-7-reactive-forms-validation-example)
|
|
4
|
-
*/
|
|
5
|
-
export function MustMatch(controlName, matchingControlName) {
|
|
6
|
-
return (formGroup) => {
|
|
7
|
-
const control = formGroup.controls[controlName];
|
|
8
|
-
const matchingControl = formGroup.controls[matchingControlName];
|
|
9
|
-
if (matchingControl.errors && !matchingControl.errors.mustMatch) {
|
|
10
|
-
// return if another validator has already found an error on the matchingControl
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
// set error on matchingControl if validation fails
|
|
14
|
-
if (control.value !== matchingControl.value) {
|
|
15
|
-
matchingControl.setErrors({ mustMatch: true });
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
matchingControl.setErrors(null);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1tYXRjaC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS92YWxpZGF0b3JzL211c3QtbWF0Y2gudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsV0FBbUIsRUFBRSxtQkFBMkI7SUFDeEUsT0FBTyxDQUFDLFNBQW9CLEVBQUUsRUFBRTtRQUM5QixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUMvRCxnRkFBZ0Y7WUFDaEYsT0FBTztTQUNSO1FBRUQsbURBQW1EO1FBQ25ELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQzNDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQ3VzdG9tIHZhbGlkYXRvciB0byBjaGVjayB0aGF0IHR3byBmaWVsZHMgbWF0Y2hcbiAqIChpbnNwaXJhdGVkIGJ5IGh0dHBzOi8vamFzb253YXRtb3JlLmNvbS9wb3N0LzIwMTgvMTEvMDcvYW5ndWxhci03LXJlYWN0aXZlLWZvcm1zLXZhbGlkYXRpb24tZXhhbXBsZSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE11c3RNYXRjaChjb250cm9sTmFtZTogc3RyaW5nLCBtYXRjaGluZ0NvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChmb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdO1xuICAgIGNvbnN0IG1hdGNoaW5nQ29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1ttYXRjaGluZ0NvbnRyb2xOYW1lXTtcblxuICAgIGlmIChtYXRjaGluZ0NvbnRyb2wuZXJyb3JzICYmICFtYXRjaGluZ0NvbnRyb2wuZXJyb3JzLm11c3RNYXRjaCkge1xuICAgICAgLy8gcmV0dXJuIGlmIGFub3RoZXIgdmFsaWRhdG9yIGhhcyBhbHJlYWR5IGZvdW5kIGFuIGVycm9yIG9uIHRoZSBtYXRjaGluZ0NvbnRyb2xcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzZXQgZXJyb3Igb24gbWF0Y2hpbmdDb250cm9sIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICBpZiAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICBtYXRjaGluZ0NvbnRyb2wuc2V0RXJyb3JzKHsgbXVzdE1hdGNoOiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXRjaGluZ0NvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
package/esm2015/public-api.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// Export libs
|
|
2
|
-
export * from './lib/base';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0IGxpYnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UnO1xuIl19
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { APOLLO_OPTIONS } from 'apollo-angular';
|
|
2
|
-
import { HttpLink } from 'apollo-angular/http';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { AuthService } from './services/auth.service';
|
|
5
|
-
import { BASE_MODULE_CONFIG } from './interfaces/base-module-config.interface';
|
|
6
|
-
import { apolloOptionsFactory } from './factories/apollo-options.factory';
|
|
7
|
-
import { ContextMenuDirective } from './directives/context-menu.directive';
|
|
8
|
-
import { LazyLoadDirective } from './directives/lazy-load.directive';
|
|
9
|
-
import { MatchHeightDirective } from './directives/match-height.directive';
|
|
10
|
-
import { ResizableDirective } from './directives/resizable.directive';
|
|
11
|
-
import { EllipsesPipe } from './pipes/ellipses.pipe';
|
|
12
|
-
import { SafeHtmlPipe } from './pipes/safe-html.pipe';
|
|
13
|
-
import { WsService } from './services/ws.service';
|
|
14
|
-
// Imported and exported elements
|
|
15
|
-
const elements = [
|
|
16
|
-
// Directives
|
|
17
|
-
ContextMenuDirective,
|
|
18
|
-
LazyLoadDirective,
|
|
19
|
-
MatchHeightDirective,
|
|
20
|
-
ResizableDirective,
|
|
21
|
-
// Pipes
|
|
22
|
-
EllipsesPipe,
|
|
23
|
-
SafeHtmlPipe,
|
|
24
|
-
];
|
|
25
|
-
/**
|
|
26
|
-
* Base module
|
|
27
|
-
*/
|
|
28
|
-
export class BaseModule {
|
|
29
|
-
/**
|
|
30
|
-
* Set configuration of base module in root module of the app
|
|
31
|
-
*/
|
|
32
|
-
static forRoot(baseModuleConfig = {}, AppAuthService) {
|
|
33
|
-
// Default config
|
|
34
|
-
const config = Object.assign({ apiUrl: 'localhost:3000', authGuardRedirectUrl: '/auth', logging: false, version: null, prefix: null, scrollDetectionOffset: 200, scrollOffset: 100, storageType: 'local' }, baseModuleConfig);
|
|
35
|
-
// Prepare providers
|
|
36
|
-
const providers = [
|
|
37
|
-
{
|
|
38
|
-
provide: BASE_MODULE_CONFIG,
|
|
39
|
-
useValue: baseModuleConfig,
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
// Add apollo features if API URL is set
|
|
43
|
-
if (baseModuleConfig.apiUrl) {
|
|
44
|
-
providers.push({
|
|
45
|
-
provide: APOLLO_OPTIONS,
|
|
46
|
-
useFactory: apolloOptionsFactory,
|
|
47
|
-
deps: [BASE_MODULE_CONFIG, HttpLink, AppAuthService ? AppAuthService : AuthService, WsService],
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
else if (config.logging) {
|
|
51
|
-
console.log('apiUrl is missing, ApolloLink is not initialized');
|
|
52
|
-
}
|
|
53
|
-
// Return root module
|
|
54
|
-
return {
|
|
55
|
-
ngModule: BaseModule,
|
|
56
|
-
providers,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
BaseModule.decorators = [
|
|
61
|
-
{ type: NgModule, args: [{
|
|
62
|
-
declarations: elements,
|
|
63
|
-
exports: elements,
|
|
64
|
-
},] }
|
|
65
|
-
];
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sMkNBQTJDLENBQUM7QUFDakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsaUNBQWlDO0FBQ2pDLE1BQU0sUUFBUSxHQUFHO0lBQ2YsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUVsQixRQUFRO0lBQ1IsWUFBWTtJQUNaLFlBQVk7Q0FDYixDQUFDO0FBRUY7O0dBRUc7QUFLSCxNQUFNLE9BQU8sVUFBVTtJQUNyQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQXFDLEVBQUUsRUFBRSxjQUFlO1FBQ3JFLGlCQUFpQjtRQUNqQixNQUFNLE1BQU0sbUJBQ1YsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixvQkFBb0IsRUFBRSxPQUFPLEVBQzdCLE9BQU8sRUFBRSxLQUFLLEVBQ2QsT0FBTyxFQUFFLElBQUksRUFDYixNQUFNLEVBQUUsSUFBSSxFQUNaLHFCQUFxQixFQUFFLEdBQUcsRUFDMUIsWUFBWSxFQUFFLEdBQUcsRUFDakIsV0FBVyxFQUFFLE9BQU8sSUFDakIsZ0JBQWdCLENBQ3BCLENBQUM7UUFFRixvQkFBb0I7UUFDcEIsTUFBTSxTQUFTLEdBQWU7WUFDNUI7Z0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsUUFBUSxFQUFFLGdCQUFnQjthQUMzQjtTQUNGLENBQUM7UUFFRix3Q0FBd0M7UUFDeEMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsY0FBYztnQkFDdkIsVUFBVSxFQUFFLG9CQUFvQjtnQkFDaEMsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2FBQy9GLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNqRTtRQUVELHFCQUFxQjtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVU7WUFDcEIsU0FBUztTQUNWLENBQUM7SUFDSixDQUFDOzs7WUE5Q0YsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxRQUFRO2dCQUN0QixPQUFPLEVBQUUsUUFBUTthQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQT0xMT19PUFRJT05TIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSHR0cExpbmsgfSBmcm9tICdhcG9sbG8tYW5ndWxhci9odHRwJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBhcG9sbG9PcHRpb25zRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2Fwb2xsby1vcHRpb25zLmZhY3RvcnknO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29udGV4dC1tZW51LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYXp5TG9hZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sYXp5LWxvYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdGNoSGVpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hdGNoLWhlaWdodC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWxsaXBzZXNQaXBlIH0gZnJvbSAnLi9waXBlcy9lbGxpcHNlcy5waXBlJztcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xuaW1wb3J0IHsgV3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93cy5zZXJ2aWNlJztcblxuLy8gSW1wb3J0ZWQgYW5kIGV4cG9ydGVkIGVsZW1lbnRzXG5jb25zdCBlbGVtZW50cyA9IFtcbiAgLy8gRGlyZWN0aXZlc1xuICBDb250ZXh0TWVudURpcmVjdGl2ZSxcbiAgTGF6eUxvYWREaXJlY3RpdmUsXG4gIE1hdGNoSGVpZ2h0RGlyZWN0aXZlLFxuICBSZXNpemFibGVEaXJlY3RpdmUsXG5cbiAgLy8gUGlwZXNcbiAgRWxsaXBzZXNQaXBlLFxuICBTYWZlSHRtbFBpcGUsXG5dO1xuXG4vKipcbiAqIEJhc2UgbW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogZWxlbWVudHMsXG4gIGV4cG9ydHM6IGVsZW1lbnRzLFxufSlcbmV4cG9ydCBjbGFzcyBCYXNlTW9kdWxlIHtcbiAgLyoqXG4gICAqIFNldCBjb25maWd1cmF0aW9uIG9mIGJhc2UgbW9kdWxlIGluIHJvb3QgbW9kdWxlIG9mIHRoZSBhcHBcbiAgICovXG4gIHN0YXRpYyBmb3JSb290KGJhc2VNb2R1bGVDb25maWc6IEJhc2VNb2R1bGVDb25maWcgPSB7fSwgQXBwQXV0aFNlcnZpY2U/KTogTW9kdWxlV2l0aFByb3ZpZGVyczxCYXNlTW9kdWxlPiB7XG4gICAgLy8gRGVmYXVsdCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcGlVcmw6ICdsb2NhbGhvc3Q6MzAwMCcsXG4gICAgICBhdXRoR3VhcmRSZWRpcmVjdFVybDogJy9hdXRoJyxcbiAgICAgIGxvZ2dpbmc6IGZhbHNlLFxuICAgICAgdmVyc2lvbjogbnVsbCxcbiAgICAgIHByZWZpeDogbnVsbCxcbiAgICAgIHNjcm9sbERldGVjdGlvbk9mZnNldDogMjAwLFxuICAgICAgc2Nyb2xsT2Zmc2V0OiAxMDAsXG4gICAgICBzdG9yYWdlVHlwZTogJ2xvY2FsJyxcbiAgICAgIC4uLmJhc2VNb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIC8vIFByZXBhcmUgcHJvdmlkZXJzXG4gICAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBCQVNFX01PRFVMRV9DT05GSUcsXG4gICAgICAgIHVzZVZhbHVlOiBiYXNlTW9kdWxlQ29uZmlnLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgLy8gQWRkIGFwb2xsbyBmZWF0dXJlcyBpZiBBUEkgVVJMIGlzIHNldFxuICAgIGlmIChiYXNlTW9kdWxlQ29uZmlnLmFwaVVybCkge1xuICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBBUE9MTE9fT1BUSU9OUyxcbiAgICAgICAgdXNlRmFjdG9yeTogYXBvbGxvT3B0aW9uc0ZhY3RvcnksXG4gICAgICAgIGRlcHM6IFtCQVNFX01PRFVMRV9DT05GSUcsIEh0dHBMaW5rLCBBcHBBdXRoU2VydmljZSA/IEFwcEF1dGhTZXJ2aWNlIDogQXV0aFNlcnZpY2UsIFdzU2VydmljZV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGNvbmZpZy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnYXBpVXJsIGlzIG1pc3NpbmcsIEFwb2xsb0xpbmsgaXMgbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJvb3QgbW9kdWxlXG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBCYXNlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Standard } from './standard.class';
|
|
2
|
-
import { Helper } from './helper.class';
|
|
3
|
-
/**
|
|
4
|
-
* User class
|
|
5
|
-
*/
|
|
6
|
-
export class BasicUser extends Standard {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.id = undefined;
|
|
10
|
-
this.email = undefined;
|
|
11
|
-
this.firstName = undefined;
|
|
12
|
-
this.lastName = undefined;
|
|
13
|
-
this.roles = [];
|
|
14
|
-
this.username = undefined;
|
|
15
|
-
}
|
|
16
|
-
// ===================================================================================================================
|
|
17
|
-
// Methods
|
|
18
|
-
// ===================================================================================================================
|
|
19
|
-
/**
|
|
20
|
-
* Mapping
|
|
21
|
-
*/
|
|
22
|
-
map(data) {
|
|
23
|
-
Helper.map(data, this);
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Checks whether the user has at least one of the required roles
|
|
28
|
-
*/
|
|
29
|
-
hasRole(roles) {
|
|
30
|
-
if (typeof roles === 'string') {
|
|
31
|
-
roles = [roles];
|
|
32
|
-
}
|
|
33
|
-
if (!this.roles || this.roles.length < 1) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
return !roles || roles.length < 1 ? true : this.roles.some((role) => roles.includes(role));
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Checks whether the user has all required roles
|
|
40
|
-
*/
|
|
41
|
-
hasAllRoles(roles) {
|
|
42
|
-
if (typeof roles === 'string') {
|
|
43
|
-
roles = [roles];
|
|
44
|
-
}
|
|
45
|
-
if (!this.roles || this.roles.length < 1) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
return !roles ? true : roles.every((role) => this.roles.includes(role));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtdXNlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxRQUFRO0lBQXZDOztRQUNFLE9BQUUsR0FBVyxTQUFTLENBQUM7UUFDdkIsVUFBSyxHQUFXLFNBQVMsQ0FBQztRQUMxQixjQUFTLEdBQVcsU0FBUyxDQUFDO1FBQzlCLGFBQVEsR0FBVyxTQUFTLENBQUM7UUFDN0IsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQVcsU0FBUyxDQUFDO0lBdUMvQixDQUFDO0lBckNDLHNIQUFzSDtJQUN0SCxVQUFVO0lBQ1Ysc0hBQXNIO0lBRXRIOztPQUVHO0lBQ0ksR0FBRyxDQUFDLElBQTRDO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEtBQXdCO1FBQ3JDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLEtBQXdCO1FBQ3pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhbmRhcmQgfSBmcm9tICcuL3N0YW5kYXJkLmNsYXNzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcblxuLyoqXG4gKiBVc2VyIGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNpY1VzZXIgZXh0ZW5kcyBTdGFuZGFyZCB7XG4gIGlkOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIGVtYWlsOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIGZpcnN0TmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBsYXN0TmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuICByb2xlczogc3RyaW5nW10gPSBbXTtcbiAgdXNlcm5hbWU6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE1ldGhvZHNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBNYXBwaW5nXG4gICAqL1xuICBwdWJsaWMgbWFwKGRhdGE6IFBhcnRpYWw8dGhpcz4gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogdGhpcyB7XG4gICAgSGVscGVyLm1hcChkYXRhLCB0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgdXNlciBoYXMgYXQgbGVhc3Qgb25lIG9mIHRoZSByZXF1aXJlZCByb2xlc1xuICAgKi9cbiAgcHVibGljIGhhc1JvbGUocm9sZXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJvbGVzID0gW3JvbGVzXTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJvbGVzIHx8IHRoaXMucm9sZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA8IDEgPyB0cnVlIDogdGhpcy5yb2xlcy5zb21lKChyb2xlKSA9PiByb2xlcy5pbmNsdWRlcyhyb2xlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFsbCByZXF1aXJlZCByb2xlc1xuICAgKi9cbiAgcHVibGljIGhhc0FsbFJvbGVzKHJvbGVzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICh0eXBlb2Ygcm9sZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuICAgIGlmICghdGhpcy5yb2xlcyB8fCB0aGlzLnJvbGVzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFyb2xlcyA/IHRydWUgOiByb2xlcy5ldmVyeSgocm9sZSkgPT4gdGhpcy5yb2xlcy5pbmNsdWRlcyhyb2xlKSk7XG4gIH1cbn1cbiJdfQ==
|