angular-toolbox 0.0.7 → 0.9.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/LICENSE +21 -0
- package/README.md +14 -10
- package/{esm2020 → esm2022}/angular-toolbox.mjs +4 -4
- package/esm2022/lib/angular-toolbox.module.mjs +21 -0
- package/esm2022/lib/core/bridge/app-bridge.mjs +76 -0
- package/esm2022/lib/core/error/app-bridge-error.mjs +24 -0
- package/esm2022/lib/core/error/http-mock-service-error.mjs +26 -0
- package/esm2022/lib/core/error/index.mjs +5 -0
- package/esm2022/lib/core/error/integrity-error.mjs +26 -0
- package/esm2022/lib/core/error/subscription-error.mjs +26 -0
- package/esm2022/lib/core/impl/index.mjs +2 -0
- package/esm2022/lib/core/impl/lang/identifiable-component.mjs +31 -0
- package/esm2022/lib/core/impl/lang/index.mjs +2 -0
- package/esm2022/lib/core/impl/version/version.impl.mjs +34 -0
- package/esm2022/lib/core/index.mjs +3 -0
- package/esm2022/lib/directive/anchor-link.directive.mjs +62 -0
- package/esm2022/lib/directive/button-role.directive.mjs +102 -0
- package/esm2022/lib/directive/content-renderer.directive.mjs +61 -0
- package/esm2022/lib/directive/index.mjs +5 -0
- package/esm2022/lib/directive/navigate-to-url.directive.mjs +51 -0
- package/esm2022/lib/directive/navigation-directive-base.mjs +23 -0
- package/esm2022/lib/framework/index.mjs +2 -0
- package/esm2022/lib/framework/mock/http/config/http-mock-parameters.mjs +9 -0
- package/esm2022/lib/framework/mock/http/config/http-mock.decorator.mjs +48 -0
- package/esm2022/lib/framework/mock/http/config/index.mjs +3 -0
- package/esm2022/lib/framework/mock/http/config/route-mock-config.mjs +9 -0
- package/esm2022/lib/framework/mock/http/core/data-storage.mjs +9 -0
- package/esm2022/lib/framework/mock/http/event/event-target.impl.mjs +122 -0
- package/esm2022/lib/framework/mock/http/event/progress-event-mock.mjs +48 -0
- package/esm2022/lib/framework/mock/http/index.mjs +4 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/constants.mjs +111 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.mjs +34 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/get-flags.mjs +28 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/iter.mjs +76 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/lexer.mjs +96 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/loose-replacer.mjs +28 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/encode.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/key.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lex-token.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/lexer-type.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/parse-options.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/simple-tokens.mjs +30 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token-type.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/model/token.mjs +17 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/string-to-token-data.mjs +87 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-key-regexp.mjs +41 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/to-stringify.mjs +29 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.mjs +49 -0
- package/esm2022/lib/framework/mock/http/path-to-regexp/token-data.mjs +33 -0
- package/esm2022/lib/framework/mock/http/util/data-storage.builder.mjs +35 -0
- package/esm2022/lib/framework/mock/http/util/http-headers-mock.builder.mjs +138 -0
- package/esm2022/lib/framework/mock/http/util/http-headers.util.mjs +56 -0
- package/esm2022/lib/framework/mock/http/util/http-method-ref.enum.mjs +60 -0
- package/esm2022/lib/framework/mock/http/util/http-mock-response.builder.mjs +117 -0
- package/esm2022/lib/framework/mock/http/util/index.mjs +3 -0
- package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +316 -0
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.impl.mjs +29 -0
- package/esm2022/lib/framework/mock/http/xhr/http-mock-factory.mjs +19 -0
- package/esm2022/lib/framework/mock/http/xhr/index.mjs +2 -0
- package/esm2022/lib/framework/mock/http/xhr/xhr-base.mjs +123 -0
- package/esm2022/lib/framework/mock/http/xhr/xhr-proxy-impl.mjs +177 -0
- package/esm2022/lib/model/business/index.mjs +5 -0
- package/esm2022/lib/model/business/lang/app-bridge-command.mjs +9 -0
- package/esm2022/lib/model/business/lang/destroyable.mjs +9 -0
- package/esm2022/lib/model/business/lang/identifiable.mjs +9 -0
- package/esm2022/lib/model/business/lang/index.mjs +5 -0
- package/esm2022/lib/model/business/lang/instantiable.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-error.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-response-mock.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/index.mjs +8 -0
- package/esm2022/lib/model/business/mock/http/xhr-proxy.mjs +9 -0
- package/esm2022/lib/model/business/ui/dark-mode-config.mjs +9 -0
- package/esm2022/lib/model/business/ui/dark-mode-config.provider.mjs +43 -0
- package/esm2022/lib/model/business/ui/dark-mode.constant.mjs +16 -0
- package/esm2022/lib/model/business/ui/index.mjs +5 -0
- package/esm2022/lib/model/business/ui/scroll-behavior.type.mjs +9 -0
- package/esm2022/lib/model/business/version/index.mjs +4 -0
- package/esm2022/lib/model/business/version/version-config.mjs +9 -0
- package/esm2022/lib/model/business/version/version-config.provider.mjs +40 -0
- package/esm2022/lib/model/business/version/version.mjs +10 -0
- package/esm2022/lib/model/index.mjs +3 -0
- package/esm2022/lib/model/service/index.mjs +5 -0
- package/esm2022/lib/model/service/mock/http/http-mock.service.mjs +239 -0
- package/esm2022/lib/model/service/subscription/subscription.service.mjs +122 -0
- package/esm2022/lib/model/service/ui/app-bridge.service.mjs +142 -0
- package/esm2022/lib/model/service/ui/dark-mode.service.mjs +183 -0
- package/esm2022/lib/model/service/ui/index.mjs +4 -0
- package/esm2022/lib/model/service/ui/scroll.service.mjs +93 -0
- package/esm2022/lib/model/service/version/version.service.mjs +51 -0
- package/{esm2020 → esm2022}/lib/pipe/index.mjs +1 -1
- package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +34 -0
- package/esm2022/lib/util/aria-role.constant.mjs +16 -0
- package/esm2022/lib/util/default-scroll-behavior.mjs +13 -0
- package/esm2022/lib/util/empty-string.const.mjs +12 -0
- package/esm2022/lib/util/index.mjs +5 -0
- package/esm2022/lib/util/js-type.mjs +40 -0
- package/esm2022/lib/util/uuid.mjs +126 -0
- package/esm2022/public-api.mjs +18 -0
- package/fesm2022/angular-toolbox.mjs +3710 -0
- package/fesm2022/angular-toolbox.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/angular-toolbox.module.d.ts +9 -7
- package/lib/core/bridge/app-bridge.d.ts +59 -0
- package/lib/core/error/app-bridge-error.d.ts +16 -0
- package/lib/core/error/http-mock-service-error.d.ts +18 -0
- package/lib/core/error/index.d.ts +4 -0
- package/lib/core/error/integrity-error.d.ts +18 -0
- package/lib/core/error/subscription-error.d.ts +18 -0
- package/lib/core/impl/index.d.ts +1 -0
- package/lib/core/impl/lang/identifiable-component.d.ts +26 -0
- package/lib/core/impl/lang/index.d.ts +1 -0
- package/lib/core/impl/version/version.impl.d.ts +42 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/directive/anchor-link.directive.d.ts +29 -0
- package/lib/directive/button-role.directive.d.ts +52 -0
- package/lib/directive/content-renderer.directive.d.ts +39 -0
- package/lib/directive/index.d.ts +4 -0
- package/lib/directive/navigate-to-url.directive.d.ts +23 -0
- package/lib/directive/navigation-directive-base.d.ts +19 -0
- package/lib/framework/index.d.ts +1 -0
- package/lib/framework/mock/http/config/http-mock-parameters.d.ts +13 -0
- package/lib/framework/mock/http/config/http-mock.decorator.d.ts +13 -0
- package/lib/framework/mock/http/config/index.d.ts +2 -0
- package/lib/framework/mock/http/config/route-mock-config.d.ts +30 -0
- package/lib/framework/mock/http/core/data-storage.d.ts +38 -0
- package/lib/framework/mock/http/event/event-target.impl.d.ts +70 -0
- package/lib/framework/mock/http/event/progress-event-mock.d.ts +36 -0
- package/lib/framework/mock/http/index.d.ts +3 -0
- package/lib/framework/mock/http/path-to-regexp/constants.d.ts +111 -0
- package/lib/framework/mock/http/path-to-regexp/escape-to-regexp-string.d.ts +24 -0
- package/lib/framework/mock/http/path-to-regexp/get-flags.d.ts +25 -0
- package/lib/framework/mock/http/path-to-regexp/iter.d.ts +50 -0
- package/lib/framework/mock/http/path-to-regexp/lexer.d.ts +24 -0
- package/lib/framework/mock/http/path-to-regexp/loose-replacer.d.ts +25 -0
- package/lib/framework/mock/http/path-to-regexp/model/decode-key-to-string.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/encode.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/key.d.ts +45 -0
- package/lib/framework/mock/http/path-to-regexp/model/lex-token.d.ts +34 -0
- package/lib/framework/mock/http/path-to-regexp/model/lexer-type.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/loose-replacer-provider.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/non-delimiter-encoder-provider.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/parse-options.d.ts +33 -0
- package/lib/framework/mock/http/path-to-regexp/model/path-to-regexp-options.d.ts +52 -0
- package/lib/framework/mock/http/path-to-regexp/model/route-string-tokenizer.d.ts +22 -0
- package/lib/framework/mock/http/path-to-regexp/model/simple-tokens.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/model/token-data-regexp-factory.d.ts +23 -0
- package/lib/framework/mock/http/path-to-regexp/model/token-type.d.ts +20 -0
- package/lib/framework/mock/http/path-to-regexp/model/token.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/string-to-token-data.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/to-key-regexp.d.ts +22 -0
- package/lib/framework/mock/http/path-to-regexp/to-stringify.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/token-data-to-regexp.d.ts +21 -0
- package/lib/framework/mock/http/path-to-regexp/token-data.d.ts +32 -0
- package/lib/framework/mock/http/util/data-storage.builder.d.ts +25 -0
- package/lib/framework/mock/http/util/http-headers-mock.builder.d.ts +106 -0
- package/lib/framework/mock/http/util/http-headers.util.d.ts +31 -0
- package/lib/framework/mock/http/util/http-method-ref.enum.d.ts +58 -0
- package/lib/framework/mock/http/util/http-mock-response.builder.d.ts +83 -0
- package/lib/framework/mock/http/util/index.d.ts +2 -0
- package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +199 -0
- package/lib/framework/mock/http/xhr/http-mock-factory.d.ts +14 -0
- package/lib/framework/mock/http/xhr/http-mock-factory.impl.d.ts +24 -0
- package/lib/framework/mock/http/xhr/index.d.ts +1 -0
- package/lib/framework/mock/http/xhr/xhr-base.d.ts +123 -0
- package/lib/framework/mock/http/xhr/xhr-proxy-impl.d.ts +125 -0
- package/lib/model/business/index.d.ts +4 -0
- package/lib/model/business/lang/app-bridge-command.d.ts +11 -0
- package/lib/model/business/lang/destroyable.d.ts +16 -0
- package/lib/model/business/lang/identifiable.d.ts +19 -0
- package/lib/model/business/lang/index.d.ts +4 -0
- package/lib/model/business/lang/instantiable.d.ts +15 -0
- package/lib/model/business/mock/http/http-method-mock.d.ts +35 -0
- package/lib/model/business/mock/http/http-mock-config.d.ts +28 -0
- package/lib/model/business/mock/http/http-mock-endpoint.d.ts +41 -0
- package/lib/model/business/mock/http/http-mock-error.d.ts +21 -0
- package/lib/model/business/mock/http/http-mock-interceptor.d.ts +27 -0
- package/lib/model/business/mock/http/http-response-mock.d.ts +44 -0
- package/lib/model/business/mock/http/index.d.ts +7 -0
- package/lib/model/business/mock/http/xhr-proxy.d.ts +15 -0
- package/lib/model/business/ui/dark-mode-config.d.ts +29 -0
- package/lib/model/business/ui/dark-mode-config.provider.d.ts +21 -0
- package/lib/model/business/ui/dark-mode.constant.d.ts +15 -0
- package/lib/model/business/ui/index.d.ts +4 -0
- package/lib/model/business/ui/scroll-behavior.type.d.ts +11 -0
- package/lib/model/business/version/index.d.ts +3 -0
- package/lib/model/business/version/version-config.d.ts +28 -0
- package/lib/model/business/version/version-config.provider.d.ts +22 -0
- package/lib/model/business/version/version.d.ts +34 -0
- package/lib/model/index.d.ts +2 -0
- package/lib/model/service/index.d.ts +4 -0
- package/lib/model/service/mock/http/http-mock.service.d.ts +101 -0
- package/lib/model/service/subscription/subscription.service.d.ts +66 -0
- package/lib/model/service/ui/app-bridge.service.d.ts +80 -0
- package/lib/model/service/ui/dark-mode.service.d.ts +99 -0
- package/lib/model/service/ui/index.d.ts +3 -0
- package/lib/model/service/ui/scroll.service.d.ts +55 -0
- package/lib/model/service/version/version.service.d.ts +30 -0
- package/lib/pipe/index.d.ts +1 -1
- package/lib/pipe/safe/safe-html.pipe.d.ts +30 -10
- package/lib/util/aria-role.constant.d.ts +15 -0
- package/lib/util/default-scroll-behavior.d.ts +12 -0
- package/lib/util/empty-string.const.d.ts +11 -0
- package/lib/util/index.d.ts +4 -0
- package/lib/util/js-type.d.ts +39 -0
- package/lib/util/uuid.d.ts +89 -0
- package/package.json +10 -13
- package/public-api.d.ts +14 -3
- package/esm2020/lib/angular-toolbox.module.mjs +0 -26
- package/esm2020/lib/pipe/safe/safe-html.pipe.mjs +0 -18
- package/esm2020/lib/service/index.mjs +0 -3
- package/esm2020/lib/service/subscription/subscription.service.mjs +0 -60
- package/esm2020/lib/service/ui/dark-mode.service.mjs +0 -167
- package/esm2020/public-api.mjs +0 -7
- package/fesm2015/angular-toolbox.mjs +0 -278
- package/fesm2015/angular-toolbox.mjs.map +0 -1
- package/fesm2020/angular-toolbox.mjs +0 -274
- package/fesm2020/angular-toolbox.mjs.map +0 -1
- package/lib/service/index.d.ts +0 -2
- package/lib/service/subscription/subscription.service.d.ts +0 -33
- package/lib/service/ui/dark-mode.service.d.ts +0 -92
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be ound in
|
|
6
|
+
* fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { Inject, Injectable, EventEmitter } from '@angular/core';
|
|
9
|
+
import { DOCUMENT } from '@angular/common';
|
|
10
|
+
import { CSS_PROP, DARK_MODE_CONFIG, STORAGE_KEY } from '../../business';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
// --> Internal constants
|
|
13
|
+
/**
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
const ADD_ACTION = "add";
|
|
17
|
+
/**
|
|
18
|
+
* @private
|
|
19
|
+
*/
|
|
20
|
+
const REMOVE_ACTION = "remove";
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
const TRUE = "true";
|
|
25
|
+
/**
|
|
26
|
+
* A lightweight service that provides Dark Mode implementation for your Angular application.
|
|
27
|
+
*/
|
|
28
|
+
export class DarkModeService {
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
* Creates a new `DarkModeService` instance.
|
|
32
|
+
*
|
|
33
|
+
* @param _document The reference to the `Document` singleton.
|
|
34
|
+
* @param config The reference to the `DarkModeConfig` provider.
|
|
35
|
+
*/
|
|
36
|
+
constructor(_document, config) {
|
|
37
|
+
this._document = _document;
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
this._darkModeEnabled = false;
|
|
42
|
+
/**
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
this._cssProperty = CSS_PROP;
|
|
46
|
+
/**
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
this._storageKey = STORAGE_KEY;
|
|
50
|
+
/**
|
|
51
|
+
* The callback function that is triggered when the dark mode changes.
|
|
52
|
+
*
|
|
53
|
+
* @typeParam `EventEmitter<boolean>` the value returned by the `darkModeEnabled()` property.
|
|
54
|
+
*/
|
|
55
|
+
this.change = new EventEmitter(true);
|
|
56
|
+
this.initDarkMode(config);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Toogles the dark mode state.
|
|
60
|
+
*/
|
|
61
|
+
toggleDarkMode() {
|
|
62
|
+
this._darkModeEnabled ? this.disableDarkMode() : this.enableDarkMode();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Sets the dark mode state to active.
|
|
66
|
+
*/
|
|
67
|
+
enableDarkMode() {
|
|
68
|
+
this.setDarkMode(ADD_ACTION);
|
|
69
|
+
this.setStoredDarkMode();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the dark mode state to inactive.
|
|
73
|
+
*/
|
|
74
|
+
disableDarkMode() {
|
|
75
|
+
this.setDarkMode(REMOVE_ACTION);
|
|
76
|
+
this.setStoredDarkMode();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns a `boolean` value that indicates whether the dark mode state is active (`true`), or not (`false`).
|
|
80
|
+
*
|
|
81
|
+
* @returns `true` whether the dark mode state is active; `false` otherwise.
|
|
82
|
+
*/
|
|
83
|
+
darkModeEnabled() {
|
|
84
|
+
return this._darkModeEnabled;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns the value of the CSS property as defined by the config provider.
|
|
88
|
+
*
|
|
89
|
+
* @returns The value of the CSS property.
|
|
90
|
+
*/
|
|
91
|
+
getCssProperty() {
|
|
92
|
+
return this._cssProperty;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns the value of the storage key as defined by the config provider.
|
|
96
|
+
*
|
|
97
|
+
* @returns The value of the storage key.
|
|
98
|
+
*/
|
|
99
|
+
getStorageKey() {
|
|
100
|
+
return this._storageKey;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Removes the dark mode information from local storage.
|
|
104
|
+
*/
|
|
105
|
+
invalidateStorage() {
|
|
106
|
+
localStorage.removeItem(this._storageKey);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
initDarkMode(config) {
|
|
112
|
+
this._darkModeEnabled = config.darkModeEnabled || false;
|
|
113
|
+
this._cssProperty = config.cssProperty || CSS_PROP;
|
|
114
|
+
this._storageKey = config.storageKey || STORAGE_KEY;
|
|
115
|
+
if (this._darkModeEnabled) {
|
|
116
|
+
this.enableDarkMode();
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.initStoredDarkMode();
|
|
120
|
+
}
|
|
121
|
+
if (config.detectBrowserSettings)
|
|
122
|
+
this.initBrowserMode();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
initStoredDarkMode() {
|
|
128
|
+
const result = localStorage.getItem(this._storageKey);
|
|
129
|
+
if (result === TRUE)
|
|
130
|
+
this.enableDarkMode();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
setStoredDarkMode() {
|
|
136
|
+
const data = String(this._darkModeEnabled);
|
|
137
|
+
localStorage.setItem(this._storageKey, data);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @private
|
|
141
|
+
*/
|
|
142
|
+
setDarkMode(action) {
|
|
143
|
+
const classList = this._document.body.classList;
|
|
144
|
+
if (action === ADD_ACTION) {
|
|
145
|
+
classList.add(this._cssProperty);
|
|
146
|
+
this._darkModeEnabled = true;
|
|
147
|
+
}
|
|
148
|
+
else if (action === REMOVE_ACTION) {
|
|
149
|
+
classList.remove(this._cssProperty);
|
|
150
|
+
this._darkModeEnabled = false;
|
|
151
|
+
}
|
|
152
|
+
this.change.emit(this._darkModeEnabled);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* @private
|
|
156
|
+
*/
|
|
157
|
+
initBrowserMode() {
|
|
158
|
+
if (this.matchDarkTheme())
|
|
159
|
+
return this.enableDarkMode();
|
|
160
|
+
this.disableDarkMode();
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* @private
|
|
164
|
+
*/
|
|
165
|
+
matchDarkTheme() {
|
|
166
|
+
return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
167
|
+
}
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DarkModeService, deps: [{ token: DOCUMENT }, { token: DARK_MODE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
169
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DarkModeService, providedIn: 'root' }); }
|
|
170
|
+
}
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DarkModeService, decorators: [{
|
|
172
|
+
type: Injectable,
|
|
173
|
+
args: [{
|
|
174
|
+
providedIn: 'root'
|
|
175
|
+
}]
|
|
176
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
177
|
+
type: Inject,
|
|
178
|
+
args: [DOCUMENT]
|
|
179
|
+
}] }, { type: undefined, decorators: [{
|
|
180
|
+
type: Inject,
|
|
181
|
+
args: [DARK_MODE_CONFIG]
|
|
182
|
+
}] }] });
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFyay1tb2RlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL3VpL2RhcmstbW9kZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBa0IsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXpGLHlCQUF5QjtBQUN6Qjs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFXLEtBQUssQ0FBQztBQUVqQzs7R0FFRztBQUNILE1BQU0sYUFBYSxHQUFXLFFBQVEsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sSUFBSSxHQUFXLE1BQU0sQ0FBQztBQUs1Qjs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBd0J4Qjs7Ozs7O09BTUc7SUFDSCxZQUFzQyxTQUFtQixFQUE0QixNQUFzQjtRQUFyRSxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBN0J6RDs7V0FFRztRQUNLLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUUxQzs7V0FFRztRQUNLLGlCQUFZLEdBQVcsUUFBUSxDQUFDO1FBRXhDOztXQUVHO1FBQ0ssZ0JBQVcsR0FBVyxXQUFXLENBQUM7UUFFMUM7Ozs7V0FJRztRQUNhLFdBQU0sR0FBMEIsSUFBSSxZQUFZLENBQVUsSUFBSSxDQUFDLENBQUM7UUFVNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQjtRQUNwQixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsTUFBc0I7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQztRQUNwRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxxQkFBcUI7WUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3RCLE1BQU0sTUFBTSxHQUFrQixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRSxJQUFJLE1BQU0sS0FBSyxJQUFJO1lBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQjtRQUNyQixNQUFNLElBQUksR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sU0FBUyxHQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUQsSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDeEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDbEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNsQixPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMxRixDQUFDOzhHQXZKUSxlQUFlLGtCQStCSixRQUFRLGFBQXVDLGdCQUFnQjtrSEEvQjFFLGVBQWUsY0FMWixNQUFNOzsyRkFLVCxlQUFlO2tCQU4zQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBbUNnQixNQUFNOzJCQUFDLFFBQVE7OzBCQUFnQyxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgb3VuZCBpblxuICogZnRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENTU19QUk9QLCBEQVJLX01PREVfQ09ORklHLCBEYXJrTW9kZUNvbmZpZywgU1RPUkFHRV9LRVkgfSBmcm9tICcuLi8uLi9idXNpbmVzcyc7XG5cbi8vIC0tPiBJbnRlcm5hbCBjb25zdGFudHNcbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgQUREX0FDVElPTjogc3RyaW5nID0gXCJhZGRcIjtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBSRU1PVkVfQUNUSU9OOiBzdHJpbmcgPSBcInJlbW92ZVwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFRSVUU6IHN0cmluZyA9IFwidHJ1ZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuLyoqXG4gKiBBIGxpZ2h0d2VpZ2h0IHNlcnZpY2UgdGhhdCBwcm92aWRlcyBEYXJrIE1vZGUgaW1wbGVtZW50YXRpb24gZm9yIHlvdXIgQW5ndWxhciBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERhcmtNb2RlU2VydmljZSB7XG4gICAgXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYXJrTW9kZUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY3NzUHJvcGVydHk6IHN0cmluZyA9IENTU19QUk9QO1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zdG9yYWdlS2V5OiBzdHJpbmcgPSBTVE9SQUdFX0tFWTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBkYXJrIG1vZGUgY2hhbmdlcy5cbiAgICAgKiBcbiAgICAgKiBAdHlwZVBhcmFtIGBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5gIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgYGRhcmtNb2RlRW5hYmxlZCgpYCBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBEYXJrTW9kZVNlcnZpY2VgIGluc3RhbmNlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBfZG9jdW1lbnQgVGhlIHJlZmVyZW5jZSB0byB0aGUgYERvY3VtZW50YCBzaW5nbGV0b24uXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgcmVmZXJlbmNlIHRvIHRoZSBgRGFya01vZGVDb25maWdgIHByb3ZpZGVyLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCwgQEluamVjdChEQVJLX01PREVfQ09ORklHKSBjb25maWc6IERhcmtNb2RlQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuaW5pdERhcmtNb2RlKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9vZ2xlcyB0aGUgZGFyayBtb2RlIHN0YXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVEYXJrTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGFya01vZGVFbmFibGVkID8gdGhpcy5kaXNhYmxlRGFya01vZGUoKSA6IHRoaXMuZW5hYmxlRGFya01vZGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkYXJrIG1vZGUgc3RhdGUgdG8gYWN0aXZlLlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVEYXJrTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXREYXJrTW9kZShBRERfQUNUSU9OKTtcbiAgICAgICAgdGhpcy5zZXRTdG9yZWREYXJrTW9kZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGRhcmsgbW9kZSBzdGF0ZSB0byBpbmFjdGl2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZURhcmtNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldERhcmtNb2RlKFJFTU9WRV9BQ1RJT04pO1xuICAgICAgICB0aGlzLnNldFN0b3JlZERhcmtNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGBib29sZWFuYCB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBkYXJrIG1vZGUgc3RhdGUgaXMgYWN0aXZlIChgdHJ1ZWApLCBvciBub3QgKGBmYWxzZWApLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBkYXJrIG1vZGUgc3RhdGUgaXMgYWN0aXZlOyBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGFya01vZGVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGFya01vZGVFbmFibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBDU1MgcHJvcGVydHkgYXMgZGVmaW5lZCBieSB0aGUgY29uZmlnIHByb3ZpZGVyLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIFRoZSB2YWx1ZSBvZiB0aGUgQ1NTIHByb3BlcnR5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDc3NQcm9wZXJ0eSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3NzUHJvcGVydHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHN0b3JhZ2Uga2V5IGFzIGRlZmluZWQgYnkgdGhlIGNvbmZpZyBwcm92aWRlci5cbiAgICAgKiBcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgb2YgdGhlIHN0b3JhZ2Uga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTdG9yYWdlS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlS2V5O1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBkYXJrIG1vZGUgaW5mb3JtYXRpb24gZnJvbSBsb2NhbCBzdG9yYWdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbnZhbGlkYXRlU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5fc3RvcmFnZUtleSk7XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0RGFya01vZGUoY29uZmlnOiBEYXJrTW9kZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kYXJrTW9kZUVuYWJsZWQgPSBjb25maWcuZGFya01vZGVFbmFibGVkIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLl9jc3NQcm9wZXJ0eSA9IGNvbmZpZy5jc3NQcm9wZXJ0eSB8fCBDU1NfUFJPUDtcbiAgICAgICAgdGhpcy5fc3RvcmFnZUtleSA9IGNvbmZpZy5zdG9yYWdlS2V5IHx8IFNUT1JBR0VfS0VZO1xuICAgICAgICBpZiAodGhpcy5fZGFya01vZGVFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZURhcmtNb2RlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRTdG9yZWREYXJrTW9kZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuZGV0ZWN0QnJvd3NlclNldHRpbmdzKSB0aGlzLmluaXRCcm93c2VyTW9kZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0U3RvcmVkRGFya01vZGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX3N0b3JhZ2VLZXkpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBUUlVFKSB0aGlzLmVuYWJsZURhcmtNb2RlKCk7XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRTdG9yZWREYXJrTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0YTogc3RyaW5nID0gU3RyaW5nKHRoaXMuX2RhcmtNb2RlRW5hYmxlZCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuX3N0b3JhZ2VLZXksIGRhdGEpO1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RGFya01vZGUoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xhc3NMaXN0OiBET01Ub2tlbkxpc3QgPSB0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdDtcbiAgICAgICAgaWYgKGFjdGlvbiA9PT0gQUREX0FDVElPTikge1xuICAgICAgICAgICAgY2xhc3NMaXN0LmFkZCh0aGlzLl9jc3NQcm9wZXJ0eSk7XG4gICAgICAgICAgICB0aGlzLl9kYXJrTW9kZUVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gUkVNT1ZFX0FDVElPTikge1xuICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZSh0aGlzLl9jc3NQcm9wZXJ0eSk7XG4gICAgICAgICAgICB0aGlzLl9kYXJrTW9kZUVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX2RhcmtNb2RlRW5hYmxlZCk7XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0QnJvd3Nlck1vZGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1hdGNoRGFya1RoZW1lKCkpIHJldHVybiB0aGlzLmVuYWJsZURhcmtNb2RlKCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZURhcmtNb2RlKCk7XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBtYXRjaERhcmtUaGVtZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './dark-mode.service';
|
|
2
|
+
export * from './scroll.service';
|
|
3
|
+
export * from './app-bridge.service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL3VpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXJrLW1vZGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcC1icmlkZ2Uuc2VydmljZSc7Il19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { DOCUMENT } from '@angular/common';
|
|
9
|
+
import { EventEmitter, Inject, Injectable } from '@angular/core';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* A lightweight service that provides scrolling capabilities to your Angular application.
|
|
13
|
+
*/
|
|
14
|
+
export class ScrollService {
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
* Creates a new `ScrollService` instance.
|
|
18
|
+
*
|
|
19
|
+
* @param _document The reference to the `Document` singleton.
|
|
20
|
+
*/
|
|
21
|
+
constructor(_document) {
|
|
22
|
+
this._document = _document;
|
|
23
|
+
/**
|
|
24
|
+
* The callback function that is triggered when a scroll operation is performed.
|
|
25
|
+
*
|
|
26
|
+
* @typeParam `EventEmitter<Event>` The reference to the original scroll event.
|
|
27
|
+
*/
|
|
28
|
+
this.onScroll = new EventEmitter();
|
|
29
|
+
window.addEventListener("scroll", (e) => {
|
|
30
|
+
this.onScroll.next(e);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Scrolls the ancestor containers of the element with the specified selector such that
|
|
35
|
+
* this element is visible to the user.
|
|
36
|
+
*
|
|
37
|
+
* @param selector The selector of the target element.
|
|
38
|
+
* @param arg A `boolean` value:
|
|
39
|
+
* If `true`, the top of the element will be aligned to the top of the visible area of the
|
|
40
|
+
* scrollable ancestor.
|
|
41
|
+
* If `false`, the bottom of the element will be aligned to the bottom of the visible area
|
|
42
|
+
* of the scrollable ancestor.
|
|
43
|
+
* @param arg A dictionary containing the scroll parameters.
|
|
44
|
+
*/
|
|
45
|
+
scrollIntoView(selector, arg) {
|
|
46
|
+
const elm = this._document.querySelector(selector);
|
|
47
|
+
if (elm)
|
|
48
|
+
elm.scrollIntoView(arg);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Scrolls the app viewport to the top of the browser window.
|
|
52
|
+
*
|
|
53
|
+
* @param behavior Specifies whether the scrolling should animate smoothly (`smooth`),
|
|
54
|
+
* happen instantly in a single jump (`instant`), or let the browser
|
|
55
|
+
* choose (`auto`, `default`).
|
|
56
|
+
*/
|
|
57
|
+
gotoTop(behavior = 'smooth') {
|
|
58
|
+
const options = {
|
|
59
|
+
top: 0,
|
|
60
|
+
behavior: behavior
|
|
61
|
+
};
|
|
62
|
+
this.scroll(options);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Scrolls the app viewport according to the specified options, into the browser window.
|
|
66
|
+
*
|
|
67
|
+
* @param options A dictionary containing the scroll parameters.
|
|
68
|
+
*/
|
|
69
|
+
scroll(options) {
|
|
70
|
+
window.scroll(options);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Scrolls the app viewport by the specified `x/y` coordinates, into the browser window.
|
|
74
|
+
*
|
|
75
|
+
* @param x The horizontal pixel value that you want to scroll by.
|
|
76
|
+
* @param y The vertical pixel value that you want to scroll by.
|
|
77
|
+
*/
|
|
78
|
+
scrollBy(x, y) {
|
|
79
|
+
window.scrollBy(x, y);
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ScrollService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
82
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ScrollService, decorators: [{
|
|
85
|
+
type: Injectable,
|
|
86
|
+
args: [{
|
|
87
|
+
providedIn: 'root'
|
|
88
|
+
}]
|
|
89
|
+
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: [DOCUMENT]
|
|
92
|
+
}] }] });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL3VpL3Njcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWpFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFTdEI7Ozs7O09BS0c7SUFDTCxZQUFzQyxTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBYnZEOzs7O1dBSUc7UUFDVyxhQUFRLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFTeEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksY0FBYyxDQUFDLFFBQWdCLEVBQUUsR0FBaUQ7UUFDdkYsTUFBTSxHQUFHLEdBQW1CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLElBQUksR0FBRztZQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxXQUEyQixRQUFRO1FBQ2hELE1BQU0sT0FBTyxHQUFvQjtZQUMvQixHQUFHLEVBQUUsQ0FBQztZQUNOLFFBQVEsRUFBRSxRQUFlO1NBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE9BQXlCO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBdEVVLGFBQWEsa0JBZUosUUFBUTtrSEFmakIsYUFBYSxjQUxaLE1BQU07OzJGQUtQLGFBQWE7a0JBTnpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFtQmMsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2Nyb2xsQmVoYXZpb3IgfSBmcm9tICcuLi8uLi9idXNpbmVzcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuLyoqXG4gKiBBIGxpZ2h0d2VpZ2h0IHNlcnZpY2UgdGhhdCBwcm92aWRlcyBzY3JvbGxpbmcgY2FwYWJpbGl0aWVzIHRvIHlvdXIgQW5ndWxhciBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjcm9sbFNlcnZpY2Uge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgdHJpZ2dlcmVkIHdoZW4gYSBzY3JvbGwgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZC5cbiAgICAgKiBcbiAgICAgKiBAdHlwZVBhcmFtIGBFdmVudEVtaXR0ZXI8RXZlbnQ+YCBUaGUgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCBzY3JvbGwgZXZlbnQuXG4gICAgICovXG4gIHB1YmxpYyByZWFkb25seSBvblNjcm9sbDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIENyZWF0ZXMgYSBuZXcgYFNjcm9sbFNlcnZpY2VgIGluc3RhbmNlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBfZG9jdW1lbnQgVGhlIHJlZmVyZW5jZSB0byB0aGUgYERvY3VtZW50YCBzaW5nbGV0b24uXG4gICAgICovXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIChlOiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5vblNjcm9sbC5uZXh0KGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGFuY2VzdG9yIGNvbnRhaW5lcnMgb2YgdGhlIGVsZW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHNlbGVjdG9yIHN1Y2ggdGhhdCBcbiAgICogdGhpcyBlbGVtZW50ICBpcyB2aXNpYmxlIHRvIHRoZSB1c2VyLlxuICAgKiBcbiAgICogQHBhcmFtIHNlbGVjdG9yIFRoZSBzZWxlY3RvciBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSBhcmcgQSBgYm9vbGVhbmAgdmFsdWU6XG4gICAqIElmIGB0cnVlYCwgdGhlIHRvcCBvZiB0aGUgZWxlbWVudCB3aWxsIGJlIGFsaWduZWQgdG8gdGhlIHRvcCBvZiB0aGUgdmlzaWJsZSBhcmVhIG9mIHRoZVxuICAgKiBzY3JvbGxhYmxlIGFuY2VzdG9yLlxuICAgKiBJZiBgZmFsc2VgLCB0aGUgYm90dG9tIG9mIHRoZSBlbGVtZW50IHdpbGwgYmUgYWxpZ25lZCB0byB0aGUgYm90dG9tIG9mIHRoZSB2aXNpYmxlIGFyZWFcbiAgICogb2YgdGhlIHNjcm9sbGFibGUgYW5jZXN0b3IuIFxuICAgKiBAcGFyYW0gYXJnIEEgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSBzY3JvbGwgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxJbnRvVmlldyhzZWxlY3Rvcjogc3RyaW5nLCBhcmc/OiBib29sZWFuIHwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgZWxtOiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICAgIGlmIChlbG0pIGVsbS5zY3JvbGxJbnRvVmlldyhhcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGFwcCB2aWV3cG9ydCB0byB0aGUgdG9wIG9mIHRoZSBicm93c2VyIHdpbmRvdy5cbiAgICogXG4gICAqIEBwYXJhbSBiZWhhdmlvciBTcGVjaWZpZXMgd2hldGhlciB0aGUgc2Nyb2xsaW5nIHNob3VsZCBhbmltYXRlIHNtb290aGx5IChgc21vb3RoYCksXG4gICAqICAgICAgICAgICAgICAgICBoYXBwZW4gaW5zdGFudGx5IGluIGEgc2luZ2xlIGp1bXAgKGBpbnN0YW50YCksIG9yIGxldCB0aGUgYnJvd3NlclxuICAgKiAgICAgICAgICAgICAgICAgY2hvb3NlIChgYXV0b2AsIGBkZWZhdWx0YCkuXG4gICAqL1xuICBwdWJsaWMgZ290b1RvcChiZWhhdmlvcjogU2Nyb2xsQmVoYXZpb3IgPSAnc21vb3RoJyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnM6IFNjcm9sbFRvT3B0aW9ucyA9IHtcbiAgICAgIHRvcDogMCxcbiAgICAgIGJlaGF2aW9yOiBiZWhhdmlvciBhcyBhbnlcbiAgICB9O1xuICAgIHRoaXMuc2Nyb2xsKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGFwcCB2aWV3cG9ydCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBvcHRpb25zLCBpbnRvIHRoZSBicm93c2VyIHdpbmRvdy5cbiAgICogXG4gICAqIEBwYXJhbSBvcHRpb25zIEEgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSBzY3JvbGwgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGwob3B0aW9ucz86IFNjcm9sbFRvT3B0aW9ucyk6IHZvaWQge1xuICAgIHdpbmRvdy5zY3JvbGwob3B0aW9ucyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBhcHAgdmlld3BvcnQgYnkgdGhlIHNwZWNpZmllZCBgeC95YCBjb29yZGluYXRlcywgaW50byB0aGUgYnJvd3NlciB3aW5kb3cuXG4gICAqIFxuICAgKiBAcGFyYW0geCBUaGUgaG9yaXpvbnRhbCBwaXhlbCB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIHNjcm9sbCBieS5cbiAgICogQHBhcmFtIHkgVGhlIHZlcnRpY2FsICBwaXhlbCB2YWx1ZSB0aGF0IHlvdSB3YW50IHRvIHNjcm9sbCBieS5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxCeSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIHdpbmRvdy5zY3JvbGxCeSh4LCB5KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { Inject, Injectable } from '@angular/core';
|
|
9
|
+
import { VERSION_CONFIG } from '../../business';
|
|
10
|
+
import { VersionImpl } from '../../../core/impl/version/version.impl';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
/**
|
|
13
|
+
* A lightweight service that provides Semantic Versioning implementation for your Angular projects.
|
|
14
|
+
*/
|
|
15
|
+
export class VersionService {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new VersionService instance.
|
|
18
|
+
* @param config the reference to the VersionConfig provider.
|
|
19
|
+
*/
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this._version = new VersionImpl(config.major, config.minor, config.patch, config.buildTimestamp);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the version of the associated Angular project.
|
|
25
|
+
*
|
|
26
|
+
* @return the version of the associated Angular project.
|
|
27
|
+
*/
|
|
28
|
+
getVersion() {
|
|
29
|
+
return this._version;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns the build timestamp of the associated Angular project.
|
|
33
|
+
*
|
|
34
|
+
* @return the build timestamp of the associated Angular project.
|
|
35
|
+
*/
|
|
36
|
+
getBuildTimestamp() {
|
|
37
|
+
return this._version.buildTimeStamp;
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, deps: [{ token: VERSION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, providedIn: 'root' }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{
|
|
45
|
+
providedIn: 'root'
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
48
|
+
type: Inject,
|
|
49
|
+
args: [VERSION_CONFIG]
|
|
50
|
+
}] }] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvbW9kZWwvc2VydmljZS92ZXJzaW9uL3ZlcnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQU96Qjs7O09BR0c7SUFDSCxZQUFvQyxNQUFxQjtRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksV0FBVyxDQUM3QixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsY0FBYyxDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdEMsQ0FBQzs4R0FwQ1UsY0FBYyxrQkFXTCxjQUFjO2tIQVh2QixjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVljLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWRVJTSU9OX0NPTkZJRywgVmVyc2lvbiwgVmVyc2lvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2J1c2luZXNzJztcclxuaW1wb3J0IHsgVmVyc2lvbkltcGwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2ltcGwvdmVyc2lvbi92ZXJzaW9uLmltcGwnO1xyXG5cclxuLyoqXHJcbiAqIEEgbGlnaHR3ZWlnaHQgc2VydmljZSB0aGF0IHByb3ZpZGVzIFNlbWFudGljIFZlcnNpb25pbmcgaW1wbGVtZW50YXRpb24gZm9yIHlvdXIgQW5ndWxhciBwcm9qZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZlcnNpb25TZXJ2aWNlIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IF92ZXJzaW9uOiBWZXJzaW9uO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IFZlcnNpb25TZXJ2aWNlIGluc3RhbmNlLlxyXG4gICAqIEBwYXJhbSBjb25maWcgdGhlIHJlZmVyZW5jZSB0byB0aGUgVmVyc2lvbkNvbmZpZyBwcm92aWRlci5cclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFZFUlNJT05fQ09ORklHKSBjb25maWc6IFZlcnNpb25Db25maWcpIHtcclxuICAgIHRoaXMuX3ZlcnNpb24gPSBuZXcgVmVyc2lvbkltcGwoXHJcbiAgICAgIGNvbmZpZy5tYWpvcixcclxuICAgICAgY29uZmlnLm1pbm9yLFxyXG4gICAgICBjb25maWcucGF0Y2gsXHJcbiAgICAgIGNvbmZpZy5idWlsZFRpbWVzdGFtcFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIGFzc29jaWF0ZWQgQW5ndWxhciBwcm9qZWN0LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2YgdGhlIGFzc29jaWF0ZWQgQW5ndWxhciBwcm9qZWN0LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWZXJzaW9uKCk6IFZlcnNpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZlcnNpb247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGJ1aWxkIHRpbWVzdGFtcCBvZiB0aGUgYXNzb2NpYXRlZCBBbmd1bGFyIHByb2plY3QuXHJcbiAgICogXHJcbiAgICogQHJldHVybiB0aGUgIGJ1aWxkIHRpbWVzdGFtcCBvZiB0aGUgYXNzb2NpYXRlZCBBbmd1bGFyIHByb2plY3QuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJ1aWxkVGltZXN0YW1wKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmVyc2lvbi5idWlsZFRpbWVTdGFtcDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './safe/safe-html.pipe';
|
|
1
|
+
export * from './safe/safe-html.pipe';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9waXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NhZmUvc2FmZS1odG1sLnBpcGUnOyJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Pipe } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
/**
|
|
5
|
+
* A basic implementation of HTML sanitization pipe.
|
|
6
|
+
*/
|
|
7
|
+
export class SafeHtmlPipe {
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
constructor(_sanitizer) {
|
|
12
|
+
this._sanitizer = _sanitizer;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Transforms the HTML input string value into a `SafeHtml` instance and returns the result
|
|
16
|
+
* of the transformation.
|
|
17
|
+
*
|
|
18
|
+
* @param value The HTML input value to transform into a `SafeHtml` instance.
|
|
19
|
+
* @returns A `SafeHtml` instance based on the specified input value.
|
|
20
|
+
*/
|
|
21
|
+
transform(value) {
|
|
22
|
+
return this._sanitizer.bypassSecurityTrustHtml(value);
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
25
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
28
|
+
type: Pipe,
|
|
29
|
+
args: [{
|
|
30
|
+
name: 'safeHtml',
|
|
31
|
+
standalone: true
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9waXBlL3NhZmUvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRDs7R0FFRztBQUtILE1BQU0sT0FBTyxZQUFZO0lBRXZCOztPQUVHO0lBQ0gsWUFBb0IsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUFHLENBQUM7SUFFaEQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7OEdBaEJVLFlBQVk7NEdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXHJcbmltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIEEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgSFRNTCBzYW5pdGl6YXRpb24gcGlwZS5cclxuICovXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FmZUh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhZmVIdG1sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0gIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyB0aGUgSFRNTCBpbnB1dCBzdHJpbmcgdmFsdWUgaW50byBhIGBTYWZlSHRtbGAgaW5zdGFuY2UgYW5kIHJldHVybnMgdGhlIHJlc3VsdFxyXG4gICAqIG9mIHRoZSB0cmFuc2Zvcm1hdGlvbi5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIEhUTUwgaW5wdXQgdmFsdWUgdG8gdHJhbnNmb3JtIGludG8gYSBgU2FmZUh0bWxgIGluc3RhbmNlLlxyXG4gICAqIEByZXR1cm5zIEEgYFNhZmVIdG1sYCBpbnN0YW5jZSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGlucHV0IHZhbHVlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IFNhZmVIdG1sIHtcclxuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A reference to the `"button"` value of the `role` property.
|
|
10
|
+
*/
|
|
11
|
+
export const BUTTON_ROLE = 'button';
|
|
12
|
+
/**
|
|
13
|
+
* A reference to the `"link"` value of the `role` property.
|
|
14
|
+
*/
|
|
15
|
+
export const LINK_ROLE = 'link';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpYS1yb2xlLmNvbnN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvdXRpbC9hcmlhLXJvbGUuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQVcsUUFBUSxDQUFDO0FBRTVDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFXLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBBIHJlZmVyZW5jZSB0byB0aGUgYFwiYnV0dG9uXCJgIHZhbHVlIG9mIHRoZSBgcm9sZWAgcHJvcGVydHkuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX1JPTEU6IHN0cmluZyA9ICdidXR0b24nO1xyXG5cclxuLyoqXHJcbiAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgXCJsaW5rXCJgIHZhbHVlIG9mIHRoZSBgcm9sZWAgcHJvcGVydHkuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTElOS19ST0xFOiBzdHJpbmcgPSAnbGluayc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be ound in
|
|
6
|
+
* fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
* An internal convenient object that defined default `ScrollIntoViewOptions` objects.
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_SCROLL_BEHAVIOR = { behavior: "smooth", block: "start", inline: "nearest" };
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zY3JvbGwtYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi91dGlsL2RlZmF1bHQtc2Nyb2xsLWJlaGF2aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUEwQixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgb3VuZCBpblxyXG4gKiBmdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQW4gaW50ZXJuYWwgY29udmVuaWVudCBvYmplY3QgdGhhdCBkZWZpbmVkIGRlZmF1bHQgYFNjcm9sbEludG9WaWV3T3B0aW9uc2Agb2JqZWN0cy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUk9MTF9CRUhBVklPUjogU2Nyb2xsSW50b1ZpZXdPcHRpb25zID0geyBiZWhhdmlvcjogXCJzbW9vdGhcIiwgYmxvY2s6IFwic3RhcnRcIiwgaW5saW5lOiBcIm5lYXJlc3RcIiB9O1xyXG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A reference to an immutable empty string.
|
|
10
|
+
*/
|
|
11
|
+
export const EMPTY_STRING = "";
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RyaW5nLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvdXRpbC9lbXB0eS1zdHJpbmcuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgcmVmZXJlbmNlIHRvIGFuIGltbXV0YWJsZSBlbXB0eSBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HOiBzdHJpbmcgPSBcIlwiOyJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './empty-string.const';
|
|
2
|
+
export * from './aria-role.constant';
|
|
3
|
+
export * from './uuid';
|
|
4
|
+
export * from './js-type';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi91dGlsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW1wdHktc3RyaW5nLmNvbnN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9hcmlhLXJvbGUuY29uc3RhbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V1aWQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2pzLXR5cGUnOyJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
|
+
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A reference to the `"undefined"` type.
|
|
10
|
+
*/
|
|
11
|
+
export const UNDEFINED = "undefined";
|
|
12
|
+
/**
|
|
13
|
+
* A reference to the `"object"` type.
|
|
14
|
+
*/
|
|
15
|
+
export const OBJECT = "object";
|
|
16
|
+
/**
|
|
17
|
+
* A reference to the `"boolean"` type.
|
|
18
|
+
*/
|
|
19
|
+
export const BOOLEAN = "boolean";
|
|
20
|
+
/**
|
|
21
|
+
* A reference to the `"number"` type.
|
|
22
|
+
*/
|
|
23
|
+
export const NUMBER = "number";
|
|
24
|
+
/**
|
|
25
|
+
* A reference to the `"bigint"` type.
|
|
26
|
+
*/
|
|
27
|
+
export const BIGINT = "bigint";
|
|
28
|
+
/**
|
|
29
|
+
* A reference to the `"function"` type.
|
|
30
|
+
*/
|
|
31
|
+
export const FUNCTION = "function";
|
|
32
|
+
/**
|
|
33
|
+
* A reference to the `"string"` type.
|
|
34
|
+
*/
|
|
35
|
+
export const STRING = "string";
|
|
36
|
+
/**
|
|
37
|
+
* A reference to the `"symbol"` type.
|
|
38
|
+
*/
|
|
39
|
+
export const SYMBOL = "symbol";
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL3V0aWwvanMtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVyxXQUFXLENBQUM7QUFFN0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVcsUUFBUSxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFXLFNBQVMsQ0FBQztBQUV6Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVcsUUFBUSxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFXLFVBQVUsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgXCJ1bmRlZmluZWRcImAgdHlwZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBVTkRFRklORUQ6IHN0cmluZyA9IFwidW5kZWZpbmVkXCI7XHJcblxyXG4vKipcclxuICogQSByZWZlcmVuY2UgdG8gdGhlIGBcIm9iamVjdFwiYCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE9CSkVDVDogc3RyaW5nID0gXCJvYmplY3RcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHJlZmVyZW5jZSB0byB0aGUgYFwiYm9vbGVhblwiYCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEJPT0xFQU46IHN0cmluZyA9IFwiYm9vbGVhblwiO1xyXG5cclxuLyoqXHJcbiAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgXCJudW1iZXJcImAgdHlwZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBOVU1CRVI6IHN0cmluZyA9IFwibnVtYmVyXCI7XHJcblxyXG4vKipcclxuICogQSByZWZlcmVuY2UgdG8gdGhlIGBcImJpZ2ludFwiYCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEJJR0lOVDogc3RyaW5nID0gXCJiaWdpbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBBIHJlZmVyZW5jZSB0byB0aGUgYFwiZnVuY3Rpb25cImAgdHlwZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBGVU5DVElPTjogc3RyaW5nID0gXCJmdW5jdGlvblwiO1xyXG5cclxuLyoqXHJcbiAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgXCJzdHJpbmdcImAgdHlwZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBTVFJJTkc6IHN0cmluZyA9IFwic3RyaW5nXCI7XHJcblxyXG4vKipcclxuICogQSByZWZlcmVuY2UgdG8gdGhlIGBcInN5bWJvbFwiYCB0eXBlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFNZTUJPTDogc3RyaW5nID0gXCJzeW1ib2xcIjtcclxuIl19
|