initial
This commit is contained in:
		
							
								
								
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| .nogit/ | ||||
|  | ||||
| # artifacts | ||||
| coverage/ | ||||
| public/ | ||||
| pages/ | ||||
|  | ||||
| # installs | ||||
| node_modules/ | ||||
|  | ||||
| # caches | ||||
| .yarn/ | ||||
| .cache/ | ||||
| .rpt2_cache | ||||
|  | ||||
| # builds | ||||
| dist/ | ||||
| dist_*/ | ||||
|  | ||||
| # custom | ||||
							
								
								
									
										146
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
| # gitzone ci_default_private | ||||
| image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|  | ||||
| cache: | ||||
|   paths: | ||||
|     - .npmci_cache/ | ||||
|   key: '$CI_BUILD_STAGE' | ||||
|  | ||||
| stages: | ||||
|   - security | ||||
|   - test | ||||
|   - release | ||||
|   - metadata | ||||
|  | ||||
| before_script: | ||||
|   - npm install -g @shipzone/npmci | ||||
|  | ||||
| # ==================== | ||||
| # security stage | ||||
| # ==================== | ||||
| mirror: | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci git mirror | ||||
|   only: | ||||
|     - tags | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| auditProductionDependencies: | ||||
|   image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci npm prepare | ||||
|     - npmci command npm install --production --ignore-scripts | ||||
|     - npmci command npm config set registry https://registry.npmjs.org | ||||
|     - npmci command npm audit --audit-level=high --only=prod --production | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|   allow_failure: true | ||||
|  | ||||
| auditDevDependencies: | ||||
|   image: registry.gitlab.com/hosttoday/ht-docker-node:npmci | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci npm prepare | ||||
|     - npmci command npm install --ignore-scripts | ||||
|     - npmci command npm config set registry https://registry.npmjs.org | ||||
|     - npmci command npm audit --audit-level=high --only=dev | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|   allow_failure: true | ||||
|  | ||||
| # ==================== | ||||
| # test stage | ||||
| # ==================== | ||||
|  | ||||
| testStable: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci npm prepare | ||||
|     - npmci node install stable | ||||
|     - npmci npm install | ||||
|     - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| testBuild: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci npm prepare | ||||
|     - npmci node install stable | ||||
|     - npmci npm install | ||||
|     - npmci command npm run build | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| release: | ||||
|   stage: release | ||||
|   script: | ||||
|     - npmci node install stable | ||||
|     - npmci npm publish | ||||
|   only: | ||||
|     - tags | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # metadata stage | ||||
| # ==================== | ||||
| codequality: | ||||
|   stage: metadata | ||||
|   allow_failure: true | ||||
|   only: | ||||
|     - tags | ||||
|   script: | ||||
|     - npmci command npm install -g typescript | ||||
|     - npmci npm prepare | ||||
|     - npmci npm install | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - priv | ||||
|  | ||||
| trigger: | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci trigger | ||||
|   only: | ||||
|     - tags | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|  | ||||
| pages: | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci node install lts | ||||
|     - npmci command npm install -g @gitzone/tsdoc | ||||
|     - npmci npm prepare | ||||
|     - npmci npm install | ||||
|     - npmci command tsdoc | ||||
|   tags: | ||||
|     - lossless | ||||
|     - docker | ||||
|     - notpriv | ||||
|   only: | ||||
|     - tags | ||||
|   artifacts: | ||||
|     expire_in: 1 week | ||||
|     paths: | ||||
|       - public | ||||
|   allow_failure: true | ||||
							
								
								
									
										11
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| { | ||||
|   "version": "0.2.0", | ||||
|   "configurations": [ | ||||
|     { | ||||
|       "command": "npm test", | ||||
|       "name": "Run npm test", | ||||
|       "request": "launch", | ||||
|       "type": "node-terminal" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										26
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| { | ||||
|   "json.schemas": [ | ||||
|     { | ||||
|       "fileMatch": ["/npmextra.json"], | ||||
|       "schema": { | ||||
|         "type": "object", | ||||
|         "properties": { | ||||
|           "npmci": { | ||||
|             "type": "object", | ||||
|             "description": "settings for npmci" | ||||
|           }, | ||||
|           "gitzone": { | ||||
|             "type": "object", | ||||
|             "description": "settings for gitzone", | ||||
|             "properties": { | ||||
|               "projectType": { | ||||
|                 "type": "string", | ||||
|                 "enum": ["website", "element", "service", "npm", "wcc"] | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										28
									
								
								html/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								html/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| <!--gitzone element--> | ||||
| <!-- made by Task Venture Capital GmbH --> | ||||
| <!-- checkout https://maintainedby.lossless.com for awesome OpenSource projects --> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <!--Lets set some basic meta tags--> | ||||
|     <meta | ||||
|       name="viewport" | ||||
|       content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" | ||||
|     /> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
|  | ||||
|     <!--Lets load standard fonts--> | ||||
|     <link rel="preconnect" href="https://assetbroker.lossless.one/" crossorigin> | ||||
|     <link rel="stylesheet" href="https://assetbroker.lossless.one/fonts/fonts.css"> | ||||
|  | ||||
|     <style> | ||||
|       body { | ||||
|         margin: 0px; | ||||
|         background: #222222; | ||||
|       } | ||||
|     </style> | ||||
|  | ||||
|     <script type="module" src="/bundle.js"></script> | ||||
|   </head> | ||||
|   <body> | ||||
|   </body> | ||||
| </html> | ||||
							
								
								
									
										10
									
								
								html/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								html/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| // dees tools | ||||
| import * as deesWccTools from '@design.estate/dees-wcctools'; | ||||
| import * as deesDomTools from '@design.estate/dees-domtools'; | ||||
|  | ||||
| // elements and pages | ||||
| import * as elements from '../ts_web/elements/index.js'; | ||||
| import * as pages from '../ts_web/pages/index.js'; | ||||
|  | ||||
| deesWccTools.setupWccTools(elements as any, pages); | ||||
| deesDomTools.elementBasic.setup(); | ||||
							
								
								
									
										19
									
								
								npmextra.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								npmextra.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "gitzone": { | ||||
|     "projectType": "wcc", | ||||
|     "module": { | ||||
|       "githost": "gitlab.com", | ||||
|       "gitscope": "consentsoftware", | ||||
|       "gitrepo": "private/catalog", | ||||
|       "description": "webcomponents for consent.software widget", | ||||
|       "npmPackagename": "@consentsoftware_private/catalog", | ||||
|       "license": "UNLICENSED", | ||||
|       "projectDomain": "consent.software" | ||||
|     } | ||||
|   }, | ||||
|   "npmci": { | ||||
|     "npmGlobalTools": [], | ||||
|     "npmAccessLevel": "private", | ||||
|     "npmRegistryUrl": "verdaccio.lossless.one" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										46
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| { | ||||
|   "name": "@consent.software_private/catalog", | ||||
|   "version": "1.0.79", | ||||
|   "private": false, | ||||
|   "description": "webcomponents for consent.software widget", | ||||
|   "main": "dist_ts_web/index.js", | ||||
|   "typings": "dist_ts_web/index.d.ts", | ||||
|   "type": "module", | ||||
|   "scripts": { | ||||
|     "test": "npm run build", | ||||
|     "build": "tsbuild element --allowimplicitany && tsbundle element --production", | ||||
|     "watch": "tswatch element" | ||||
|   }, | ||||
|   "author": "Lossless GmbH", | ||||
|   "license": "UNLICENSED", | ||||
|   "dependencies": { | ||||
|     "@consent.software/interfaces": "^1.0.11", | ||||
|     "@consent.software/webclient": "^1.0.14", | ||||
|     "@design.estate/dees-catalog": "^1.3.3", | ||||
|     "@design.estate/dees-domtools": "^2.1.1", | ||||
|     "@design.estate/dees-element": "^2.0.39", | ||||
|     "@push.rocks/smartdelay": "^3.0.5" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@design.estate/dees-wcctools": "^1.0.90", | ||||
|     "@git.zone/tsbuild": "^2.2.0", | ||||
|     "@git.zone/tsbundle": "^2.1.0", | ||||
|     "@git.zone/tswatch": "^2.0.37", | ||||
|     "@push.rocks/projectinfo": "^5.0.2" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "ts/**/*", | ||||
|     "ts_web/**/*", | ||||
|     "dist/**/*", | ||||
|     "dist_*/**/*", | ||||
|     "dist_ts/**/*", | ||||
|     "dist_ts_web/**/*", | ||||
|     "assets/**/*", | ||||
|     "cli.js", | ||||
|     "npmextra.json", | ||||
|     "readme.md" | ||||
|   ], | ||||
|   "browserslist": [ | ||||
|     "last 1 Chrome versions" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										8610
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										8610
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										34
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| # @consentsoftware/private/catalog | ||||
| webcomponents for consent.software widget | ||||
|  | ||||
| ## Availabililty and Links | ||||
| * [npmjs.org (npm package)](https://www.npmjs.com/package/@consentsoftware_private/catalog) | ||||
| * [gitlab.com (source)](https://gitlab.com/consentsoftware/private/catalog) | ||||
| * [github.com (source mirror)](https://github.com/consentsoftware/private/catalog) | ||||
| * [docs (typedoc)](https://consentsoftware.gitlab.io/private/catalog/) | ||||
|  | ||||
| ## Status for master | ||||
|  | ||||
| Status Category | Status Badge | ||||
| -- | -- | ||||
| GitLab Pipelines | [](https://lossless.cloud) | ||||
| GitLab Pipline Test Coverage | [](https://lossless.cloud) | ||||
| npm | [](https://lossless.cloud) | ||||
| Snyk | [](https://lossless.cloud) | ||||
| TypeScript Support | [](https://lossless.cloud) | ||||
| node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/) | ||||
| Code Style | [](https://lossless.cloud) | ||||
| PackagePhobia (total standalone install weight) | [](https://lossless.cloud) | ||||
| PackagePhobia (package size on registry) | [](https://lossless.cloud) | ||||
| BundlePhobia (total size when bundled) | [](https://lossless.cloud) | ||||
| Platform support | [](https://lossless.cloud) [](https://lossless.cloud) | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Use TypeScript for best in class intellisense | ||||
| For further information read the linked docs at the top of this readme. | ||||
|  | ||||
| > UNLICENSED licensed | **©** [Lossless GmbH](https://lossless.gmbh) | ||||
| | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy) | ||||
|  | ||||
| [](https://maintainedby.lossless.com) | ||||
							
								
								
									
										8
									
								
								ts_web/00_commitinfo_data.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ts_web/00_commitinfo_data.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| /** | ||||
|  * autocreated commitinfo by @pushrocks/commitinfo | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@consent.software_private/catalog', | ||||
|   version: '1.0.79', | ||||
|   description: 'webcomponents for consent.software widget' | ||||
| } | ||||
							
								
								
									
										242
									
								
								ts_web/elements/consentsoftware-cookieconsent.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										242
									
								
								ts_web/elements/consentsoftware-cookieconsent.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,242 @@ | ||||
| import { customElement, DeesElement, property, html, type TemplateResult, cssManager, css } from '@design.estate/dees-element'; | ||||
| import * as domtools from '@design.estate/dees-domtools'; | ||||
| import '@design.estate/dees-catalog'; | ||||
|  | ||||
| import * as csInterfaces from '@consent.software/interfaces'; | ||||
| import * as csWebclient from '@consent.software/webclient'; | ||||
|  | ||||
| import { delayFor } from '@push.rocks/smartdelay'; | ||||
|  | ||||
| @customElement('consentsoftware-cookieconsent') | ||||
| export class ConsentsoftwareCookieconsent extends DeesElement { | ||||
|   public static demo = () => html`<consentsoftware-cookieconsent></consentsoftware-cookieconsent>`; | ||||
|  | ||||
|   public csWebclientInstance = new csWebclient.CsWebclient(); | ||||
|   public csWebclientRan = false; | ||||
|  | ||||
|   constructor() { | ||||
|     super(); | ||||
|     domtools.elementBasic.setup(); | ||||
|     // lets determine wether to show the cookieconsent dialog or not | ||||
|   } | ||||
|  | ||||
|   public static styles = [ | ||||
|     cssManager.defaultStyles, | ||||
|     css` | ||||
|         * { | ||||
|           box-sizing: border-box; | ||||
|         } | ||||
|  | ||||
|         .content { | ||||
|           max-width: 1100px; | ||||
|           margin: auto; | ||||
|           line-height: var(--cookieconsent-height); | ||||
|           padding-bottom: 20px; | ||||
|         } | ||||
|  | ||||
|  | ||||
|         .text-container { | ||||
|           line-height: var(--cookieconsent-height); | ||||
|           display: grid; | ||||
|           grid-template-columns: 30px auto; | ||||
|         } | ||||
|  | ||||
|         .text-container .icon-container { | ||||
|           height: var(--cookieconsent-height); | ||||
|           display: inline-block; | ||||
|           color: #4496F5; | ||||
|         } | ||||
|  | ||||
|         .text-container .toptext { | ||||
|  | ||||
|         } | ||||
|  | ||||
|         .text-container a { | ||||
|           color: ${cssManager.bdTheme('#333', '#fff')}; | ||||
|         } | ||||
|  | ||||
|         .button-container { | ||||
|           display: grid; | ||||
|           grid-template-columns: ${cssManager.cssGridColumns(4, 20)}; | ||||
|           grid-column-gap: 20px; | ||||
|           grid-row-gap: 20px; | ||||
|         } | ||||
|  | ||||
|         .info-container { | ||||
|           color: ${cssManager.bdTheme('#444', '#CCC')}; | ||||
|           text-align: center; | ||||
|         } | ||||
|  | ||||
|         .info-container a { | ||||
|           text-decoration: underline; | ||||
|           color: ${cssManager.bdTheme('#444', '#CCC')}; | ||||
|           transition: color 0.2s; | ||||
|         } | ||||
|  | ||||
|         .info-container a:hover { | ||||
|           color: #ffffff; | ||||
|         } | ||||
|  | ||||
|  | ||||
|         .consent-button { | ||||
|           border-radius: 3px; | ||||
|           background: ${cssManager.bdTheme('#ffffff', '#252525')}; | ||||
|           box-shadow: ${cssManager.bdTheme('0px 0px 5px rgba(0,0,0,0.2)', '0px 0px 5px rgba(0,0,0,0.4)')}; | ||||
|           padding: 10px; | ||||
|           line-height: 30px; | ||||
|           text-align: center; | ||||
|           cursor: pointer; | ||||
|           transition: background 0.2s; | ||||
|         } | ||||
|  | ||||
|         .consent-button:hover { | ||||
|           background: ${cssManager.bdTheme('#f2f2f2', '#222222')}; | ||||
|         } | ||||
|  | ||||
|         .consent-button:first-child { | ||||
|           margin-left: 0px; | ||||
|         } | ||||
|  | ||||
|         ${cssManager.cssForNotebook(css` | ||||
|           .content { | ||||
|             padding-left: 30px; | ||||
|             padding-right: 30px; | ||||
|           } | ||||
|         `)} | ||||
|  | ||||
|         ${cssManager.cssForTablet(css` | ||||
|           :host { | ||||
|             text-align: center; | ||||
|           } | ||||
|  | ||||
|           .content { | ||||
|             padding-top: 20px; | ||||
|           } | ||||
|  | ||||
|           .icon-container { | ||||
|             margin-top: -10px; | ||||
|             line-height: 50px; | ||||
|             font-size: 40px; | ||||
|           } | ||||
|  | ||||
|           .text-container { | ||||
|             line-height: 20px; | ||||
|             margin-bottom: 10px; | ||||
|             grid-template-columns: 50px auto; | ||||
|           } | ||||
|  | ||||
|           .button-container { | ||||
|             grid-template-columns: ${cssManager.cssGridColumns(2, 20)}; | ||||
|           } | ||||
|         `)} | ||||
|  | ||||
|         ${cssManager.cssForPhablet(css` | ||||
|           .button-container { | ||||
|             grid-template-columns: 100%; | ||||
|           } | ||||
|         `)} | ||||
|     ` | ||||
|   ] | ||||
|  | ||||
|   public render(): TemplateResult { | ||||
|     return html` | ||||
|       <style> | ||||
|         :host { | ||||
|           display: block; | ||||
|           font-family: 'Roboto', sans-serif; | ||||
|           color: ${cssManager.bdTheme('#333', '#fff')}; | ||||
|           background: ${cssManager.bdTheme('#eeeeee', '#111')}; | ||||
|           box-shadow: ${cssManager.bdTheme('0px 0px 15px rgba(0,0,0,0.4)', '0px -30px 30px rgba(0,0,0,1)')}; | ||||
|           position: fixed; | ||||
|           bottom: 0px; | ||||
|           border-top: ${cssManager.bdTheme('none', '1px solid  #e4002b')}; | ||||
|           left: 0px; | ||||
|           width: 100%; | ||||
|           box-sizing: border-box; | ||||
|           --cookieconsent-height: 60px; | ||||
|           min-height: var(--cookieconsent-height); | ||||
|           margin-bottom: -${this.heightPixels}px; | ||||
|           will-change: transform; /* make sure it is rendered efficiently */ | ||||
|           z-index: 1000; /* the standard z-index for fixed elements at Lossless */ | ||||
|         } | ||||
|  | ||||
|         :host([show=false]) { | ||||
|           display: none; | ||||
|         } | ||||
|  | ||||
|         :host([show=true]) { | ||||
|           display: block; | ||||
|           transition: margin-bottom 0.3s ease; | ||||
|         } | ||||
|  | ||||
|         :host([gotIt=true]) { | ||||
|           margin-bottom: -${this.heightPixels + 1}px; | ||||
|         } | ||||
|  | ||||
|         :host([gotIt=false]) { | ||||
|           margin-bottom: 0px; | ||||
|         } | ||||
|       </style> | ||||
|       <div class="content"> | ||||
|         <div class="text-container"> | ||||
|           <div class="icon-container"> | ||||
|             <dees-icon iconName="info"></dees-icon> | ||||
|           </div> | ||||
|           <div class="toptext">This page uses cookies. Please review our <a href="https://lossless.gmbh/cookie" target="_blank">cookie policy</a> and choose which cookie level you are willing to accept.</div> | ||||
|         </div> | ||||
|         <div class="button-container"> | ||||
|           <div class="consent-button" @click=${event => {this.setLevel(event, ['functional']);}}>Functional cookies</div> | ||||
|           <div class="consent-button" @click=${event => {this.setLevel(event, ['functional', 'analytics']);}}>Analytics cookies</div> | ||||
|           <div class="consent-button" @click=${event => {this.setLevel(event, ['functional', 'analytics', 'marketing']);}}>Marketing cookies</div> | ||||
|           <div class="consent-button" @click=${event => {this.setLevel(event, ['functional', 'analytics', 'marketing', 'all']);}}>All cookies</div> | ||||
|         </div> | ||||
|         <div class="info-container"> | ||||
|           consent management powered by <a href="https://consent.software">consent.software</a> | ||||
|         </div> | ||||
|       </div> | ||||
|     `; | ||||
|   } | ||||
|  | ||||
|   @property({type: Number}) | ||||
|   public heightPixels: number = 60; | ||||
|  | ||||
|   public async connectedCallback() { | ||||
|     super.connectedCallback(); | ||||
|     this.setAttribute('gotIt', 'true'); | ||||
|     const cookieLevel = await this.csWebclientInstance.getCookieLevels(); | ||||
|     if(!cookieLevel) { | ||||
|       delayFor(300).then(() => { | ||||
|         this.setAttribute('show', 'true'); | ||||
|         this.setAttribute('gotIt', 'false'); | ||||
|       }); | ||||
|     } else { | ||||
|       this.setAttribute('show', 'false'); | ||||
|       this.setAttribute('gotIt', 'true'); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   public firstUpdated() { | ||||
|     this.heightPixels = this.shadowRoot.host.clientHeight; | ||||
|   } | ||||
|  | ||||
|   public async updated() { | ||||
|     console.log(`The height of the cookie banner is ${this.shadowRoot.host.clientHeight}px`); | ||||
|     const acceptedCookieLevels = await this.csWebclientInstance.getCookieLevels(); | ||||
|     if (!this.csWebclientRan && acceptedCookieLevels) { | ||||
|       this.csWebclientRan = true; | ||||
|       await this.csWebclientInstance.getAndRunConsentTuples(); | ||||
|     } | ||||
|  | ||||
|   } | ||||
|  | ||||
|    | ||||
|   private async setLevel (event: MouseEvent, levelsArg: csInterfaces.TCookieLevel[]) { | ||||
|     console.log(`Set level to ${levelsArg}`); | ||||
|     await this.csWebclientInstance.setCookieLevels(levelsArg); | ||||
|     this.setAttribute('gotIt', 'true'); | ||||
|     await delayFor(300); | ||||
|     this.setAttribute('show', 'false'); | ||||
|     this.updated(); | ||||
|   } | ||||
|  | ||||
| } | ||||
							
								
								
									
										1
									
								
								ts_web/elements/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ts_web/elements/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export * from './consentsoftware-cookieconsent.js'; | ||||
							
								
								
									
										1
									
								
								ts_web/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ts_web/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export * from './elements/index.js'; | ||||
							
								
								
									
										16
									
								
								ts_web/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								ts_web/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "target": "es2017", | ||||
|     "module": "es2015", | ||||
|     "moduleResolution": "node", | ||||
|     "lib": ["es2017", "dom"], | ||||
|     "declaration": true, | ||||
|     "inlineSources": true, | ||||
|     "inlineSourceMap": true, | ||||
|     "noUnusedLocals": true, | ||||
|     "noFallthroughCasesInSwitch": true, | ||||
|     "outDir": "dist/", | ||||
|     "skipLibCheck": true, | ||||
|     "experimentalDecorators": true | ||||
|   } | ||||
| } | ||||
							
								
								
									
										7
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "target": "ES2020", | ||||
|     "module": "ES2020", | ||||
|     "moduleResolution": "node12" | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user