diff --git a/.drone.yml b/.drone.yml
index e3b8ad5..76b65fc 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -1,14 +1,13 @@
kind: pipeline
+type: docker
name: default
steps:
- name: prepare
- image: node:12
+ image: node:15-alpine
commands:
- npm install
- name: build
- image: node:12
- environment:
- NPMPATH: "node_modules/.bin"
+ image: node:15-alpine
commands:
- - $NPMPATH/grunt
+ - npm run build
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index ae194d4..0000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,180 +0,0 @@
-module.exports = function (grunt) {
- 'use strict';
- // Load all grunt tasks
- require('load-grunt-tasks')(grunt);
- // Show elapsed time at the end
- require('time-grunt')(grunt);
-
- // Project configuration.
- grunt.initConfig({
- // Metadata.
- pkg: grunt.file.readJSON('package.json'),
- banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
- '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
- '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
- '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
- ' Licensed <%= pkg.licenses[0].type %> */\n',
- // Task configuration.
- clean: {
- files: ['dist']
- },
- concat: {
- options: {
- banner: '<%= banner %>',
- stripBanners: true
- },
- libs: {
- src: [
- 'node_modules/jquery/dist/jquery.js',
- 'node_modules/jquery-ui/ui/widget.js',
- 'node_modules/jquery.cookie/jquery.cookie.js'
- ],
- dest: 'dist/libs.js'
- },
- dist: {
- src: ['src/uhr.js', 'src/uhr-*.js'],
- dest: 'dist/jquery.<%= pkg.name %>.complete.js'
- },
- main: {
- src: ['src/uhr.js'],
- dest: 'dist/jquery.<%= pkg.name %>.main.js'
- },
- base: {
- src: ['src/uhr.js', 'src/uhr-de_CH.js'],
- dest: 'dist/jquery.<%= pkg.name %>.base.js'
- },
- baselangs: {
- src: ['src/uhr-*.js'],
- exclude: ['src/uhr-de_CH.js'],
- dest: 'dist/jquery.<%= pkg.name %>.baselangs.js'
- },
- langs: {
- src: ['src/uhr-*.js'],
- dest: 'dist/jquery.<%= pkg.name %>.langs.js'
- }
- },
- uglify: {
- options: {
- banner: '<%= banner %>'
- },
- libs: {
- src: '<%= concat.libs.dest %>',
- dest: 'dist/libs.min.js'
- },
- dist: {
- src: '<%= concat.dist.dest %>',
- dest: 'dist/jquery.<%= pkg.name %>.complete.min.js'
- },
- main: {
- src: '<%= concat.main.dest %>',
- dest: 'dist/jquery.<%= pkg.name %>.main.min.js'
- },
- base: {
- src: '<%= concat.base.dest %>',
- dest: 'dist/jquery.<%= pkg.name %>.base.min.js'
- },
- baselangs: {
- src: '<%= concat.baselangs.dest %>',
- dest: 'dist/jquery.<%= pkg.name %>.baselangs.min.js'
- },
- langs: {
- src: '<%= concat.langs.dest %>',
- dest: 'dist/jquery.<%= pkg.name %>.langs.min.js'
- }
- },
- cssmin: {
- allcss: {
- files: [{
- expand: true,
- cwd: 'css',
- src: ['*.css'],
- dest: 'dist',
- ext: '.min.css'
- }]
- }
- },
- mocha_phantomjs: {
- all: {
- options: {
- urls: ['http://localhost:9000/test/test.html']
- }
- }
- },
- jshint: {
- options: {
- reporter: require('jshint-stylish')
- },
- gruntfile: {
- options: {
- jshintrc: '.jshintrc'
- },
- src: 'Gruntfile.js'
- },
- src: {
- options: {
- jshintrc: '.jshintrc'
- },
- src: ['src/**/*.js']
- },
- test: {
- options: {
- jshintrc: 'test/.jshintrc'
- },
- src: ['test/*.js']
- }
- },
- watch: {
- gruntfile: {
- files: '<%= jshint.gruntfile.src %>',
- tasks: ['jshint:gruntfile']
- },
- src: {
- files: '<%= jshint.src.src %>',
- tasks: ['jshint:src', 'mocha_phantomjs']
- },
- test: {
- files: ['test/test.html', '<%= jshint.test.src %>'],
- tasks: ['jshint:test', 'mocha_phantomjs']
- }
- },
- connect: {
- server: {
- options: {
- hostname: '*',
- port: 9000
- }
- }
- },
- version: {
- VERSION: {
- options: {
- prefix: ''
- },
- src: ['VERSION']
- },
- bower: {
- src: ['bower.json']
- },
- manifest: {
- options: {
- prefix: 'Version\\s+'
- },
- src: ['manifest.appcache']
- }
- }
- });
-
- grunt.loadNpmTasks('grunt-mocha-phantomjs');
- grunt.loadNpmTasks('grunt-contrib-cssmin');
- grunt.loadNpmTasks('grunt-version');
-
- // Default task.
- grunt.registerTask('default', ['jshint', 'clean', 'version', 'concat', 'connect', 'mocha_phantomjs', 'uglify', 'cssmin']);
- grunt.registerTask('buildonly', ['clean', 'version', 'concat', 'uglify', 'cssmin']);
- grunt.registerTask('server', function () {
- grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
- grunt.task.run(['serve']);
- });
- grunt.registerTask('serve', ['connect', 'watch']);
- grunt.registerTask('test', ['jshint', 'connect', 'mocha_phantomjs']);
-};
diff --git a/README.md b/README.md
index 22eb1a9..1792900 100644
--- a/README.md
+++ b/README.md
@@ -22,10 +22,10 @@ Beim Einbinden muss das attribut `data-class` angegeben werden, welches die CSS-
* Binde nach den CSS-Dateien (wichtig!) folgende Javascript-Dateien im HTML-Dokument ein:
* dist/libs.min.js: Dies enthält die minifizierten Versionen von jQuery, jQuery-UI (mit den Komponenten `code` und `widget`) und jQuery-Cookie.
Alternativ kannst Du auch direkt die benötigten Bibliotheken einbinden:
- * jquery (getestet mit Version 3.4.1)
- * jquery-ui (getestet mit Version 1.12.1)
- * Von jquery-ui wird die Komponente 'widget' benötigt.
- * jquery-cookie (getestet mit Version 1.4.1)
+ * jquery (getestet mit Version 3.4.1)
+ * jquery-ui (getestet mit Version 1.12.1)
+ * Von jquery-ui wird die Komponente 'widget' benötigt.
+ * jquery-cookie (getestet mit Version 1.4.1)
Je nach dem, in welchen Sprachen du die Uhr verwenden willst, noch eine der folgenden Dateien:
* dist/jquery.uhr.complete.min.js: Enthält die Hauptdatei sowie alle unterstützten Sprachdateien
* dist/jquery.uhr.base.min.js: Enthält die Hauptdatei sowie Bärndütsch (de_CH)
@@ -93,7 +93,7 @@ jQuery('#uhrcontainer').uhr({
language: 'de_CH', // 'de_CH' (default), 'de_CH_genau', 'de', 'dk', 'en', 'es', 'fr', 'it', 'nl' oder 'pt' (je nach eingebundenen Sprachdateien)
mode: 'normal', // 'normal' (default): Die Uhr zeigt die aktuelle Zeit (Stunden und Minuten) in Worten an
// 'seconds': Die Uhr zeigt die aktuellen Sekunden als grosse Ziffern an
- width: '100%', // eine CSS-Grössenangabe (default: 100%)
+ width: '100%', // Eine CSS-Grössenangabe (default: 100%)
force: false, // false (default): Falls ein Cookie im Browser besteht, werden dessen Konfigurationswerte übernommen;
// true: immer die angegebene Konfiguration verwenden
controls: true, // true (default): Die Bedienelemente (Ein-/Ausschalter, Theme-, Zeitmodus- und Sprachwähler) werden angezeigt
@@ -121,7 +121,7 @@ jQuery('#uhrcontainer').uhr("time", new Date());
```
## 6. Konfiguration über die URL
-Es ist möglich, die Uhr durch den Aufruf mit URL-Parameters zu konfigurieren. Dies übersteuert auch allfällig bereits in einem Cookie gespeicherte Einstellungen. Die Einstellungen werden für alle Uhr-Elemente übernommen, welche sich auf der Seite befinden. Folgende Parameter werden unterstützt, wenn du sie mit einem Hash (`#`) an die URL anhängst:
+Es ist möglich, die Uhr durch den Aufruf mit URL-Parametern zu konfigurieren. Dies übersteuert auch allfällig bereits in einem Cookie gespeicherte Einstellungen. Die Einstellungen werden für alle Uhr-Elemente übernommen, welche sich auf der Seite befinden. Folgende Parameter werden unterstützt, wenn du sie mit einem Hash (`#`) an die URL anhängst:
* `l` oder `language`: Bestimmt die Sprache. Der Wert ist der Sprach-Code (abhängig von den eingebundenen Sprachdateien):
* de_CH: Bärndütsch
diff --git a/build-config/entrypoints/css-app.js b/build-config/entrypoints/css-app.js
new file mode 100644
index 0000000..f57a652
--- /dev/null
+++ b/build-config/entrypoints/css-app.js
@@ -0,0 +1 @@
+import '../../css/uhr.css';
diff --git a/build-config/entrypoints/css-black.js b/build-config/entrypoints/css-black.js
new file mode 100644
index 0000000..9924336
--- /dev/null
+++ b/build-config/entrypoints/css-black.js
@@ -0,0 +1 @@
+import '../../css/uhr-black.css';
diff --git a/build-config/entrypoints/css-blue.js b/build-config/entrypoints/css-blue.js
new file mode 100644
index 0000000..13e3df9
--- /dev/null
+++ b/build-config/entrypoints/css-blue.js
@@ -0,0 +1 @@
+import '../../css/uhr-blue.css';
diff --git a/build-config/entrypoints/css-green.js b/build-config/entrypoints/css-green.js
new file mode 100644
index 0000000..ff54518
--- /dev/null
+++ b/build-config/entrypoints/css-green.js
@@ -0,0 +1 @@
+import '../../css/uhr-green.css';
diff --git a/build-config/entrypoints/css-pink.js b/build-config/entrypoints/css-pink.js
new file mode 100644
index 0000000..d314a16
--- /dev/null
+++ b/build-config/entrypoints/css-pink.js
@@ -0,0 +1 @@
+import '../../css/uhr-pink.css';
diff --git a/build-config/entrypoints/css-red.js b/build-config/entrypoints/css-red.js
new file mode 100644
index 0000000..caca988
--- /dev/null
+++ b/build-config/entrypoints/css-red.js
@@ -0,0 +1 @@
+import '../../css/uhr-red.css';
diff --git a/build-config/entrypoints/css-white.js b/build-config/entrypoints/css-white.js
new file mode 100644
index 0000000..b3c2dc6
--- /dev/null
+++ b/build-config/entrypoints/css-white.js
@@ -0,0 +1 @@
+import '../../css/uhr-white.css';
diff --git a/build-config/entrypoints/css-yellow.js b/build-config/entrypoints/css-yellow.js
new file mode 100644
index 0000000..6f1f258
--- /dev/null
+++ b/build-config/entrypoints/css-yellow.js
@@ -0,0 +1 @@
+import '../../css/uhr-yellow.css';
diff --git a/build-config/entrypoints/js-app.js b/build-config/entrypoints/js-app.js
new file mode 100644
index 0000000..b764aac
--- /dev/null
+++ b/build-config/entrypoints/js-app.js
@@ -0,0 +1 @@
+import '../../src/uhr';
diff --git a/build-config/entrypoints/js-base.js b/build-config/entrypoints/js-base.js
new file mode 100644
index 0000000..51f9973
--- /dev/null
+++ b/build-config/entrypoints/js-base.js
@@ -0,0 +1,2 @@
+import '../../src/uhr';
+import '../../src/uhr-de_CH';
diff --git a/build-config/entrypoints/js-baselangs.js b/build-config/entrypoints/js-baselangs.js
new file mode 100644
index 0000000..503ee3d
--- /dev/null
+++ b/build-config/entrypoints/js-baselangs.js
@@ -0,0 +1,9 @@
+import '../../src/uhr-de';
+import '../../src/uhr-de_CH_genau';
+import '../../src/uhr-dk';
+import '../../src/uhr-en';
+import '../../src/uhr-es';
+import '../../src/uhr-fr';
+import '../../src/uhr-it';
+import '../../src/uhr-nl';
+import '../../src/uhr-pt';
diff --git a/build-config/entrypoints/js-complete.js b/build-config/entrypoints/js-complete.js
new file mode 100644
index 0000000..8f63442
--- /dev/null
+++ b/build-config/entrypoints/js-complete.js
@@ -0,0 +1,11 @@
+import '../../src/uhr';
+import '../../src/uhr-de';
+import '../../src/uhr-de_CH';
+import '../../src/uhr-de_CH_genau';
+import '../../src/uhr-dk';
+import '../../src/uhr-en';
+import '../../src/uhr-es';
+import '../../src/uhr-fr';
+import '../../src/uhr-it';
+import '../../src/uhr-nl';
+import '../../src/uhr-pt';
diff --git a/build-config/entrypoints/js-langs.js b/build-config/entrypoints/js-langs.js
new file mode 100644
index 0000000..938e011
--- /dev/null
+++ b/build-config/entrypoints/js-langs.js
@@ -0,0 +1,10 @@
+import '../../src/uhr-de';
+import '../../src/uhr-de_CH';
+import '../../src/uhr-de_CH_genau';
+import '../../src/uhr-dk';
+import '../../src/uhr-en';
+import '../../src/uhr-es';
+import '../../src/uhr-fr';
+import '../../src/uhr-it';
+import '../../src/uhr-nl';
+import '../../src/uhr-pt';
diff --git a/build-config/entrypoints/js-libs.js b/build-config/entrypoints/js-libs.js
new file mode 100644
index 0000000..6642c62
--- /dev/null
+++ b/build-config/entrypoints/js-libs.js
@@ -0,0 +1,3 @@
+import 'jquery';
+import 'jquery-ui';
+import 'jquery.cookie';
diff --git a/build-config/rollup.config.css-app.js b/build-config/rollup.config.css-app.js
new file mode 100644
index 0000000..f7d53b3
--- /dev/null
+++ b/build-config/rollup.config.css-app.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from "postcss";
+import cssnano from "cssnano";
+
+export default {
+ input: 'build-config/entrypoints/css-app.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-black.js b/build-config/rollup.config.css-black.js
new file mode 100644
index 0000000..b402865
--- /dev/null
+++ b/build-config/rollup.config.css-black.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-black.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-black.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-blue.js b/build-config/rollup.config.css-blue.js
new file mode 100644
index 0000000..8b00d77
--- /dev/null
+++ b/build-config/rollup.config.css-blue.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-blue.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-blue.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-green.js b/build-config/rollup.config.css-green.js
new file mode 100644
index 0000000..949dbd0
--- /dev/null
+++ b/build-config/rollup.config.css-green.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-green.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-green.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-pink.js b/build-config/rollup.config.css-pink.js
new file mode 100644
index 0000000..1eadbae
--- /dev/null
+++ b/build-config/rollup.config.css-pink.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-pink.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-pink.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-red.js b/build-config/rollup.config.css-red.js
new file mode 100644
index 0000000..9cfec11
--- /dev/null
+++ b/build-config/rollup.config.css-red.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-red.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-red.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-white.js b/build-config/rollup.config.css-white.js
new file mode 100644
index 0000000..62f2808
--- /dev/null
+++ b/build-config/rollup.config.css-white.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-white.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-white.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.css-yellow.js b/build-config/rollup.config.css-yellow.js
new file mode 100644
index 0000000..9ec2766
--- /dev/null
+++ b/build-config/rollup.config.css-yellow.js
@@ -0,0 +1,11 @@
+import cssbundle from 'rollup-plugin-css-bundle';
+import postcss from 'postcss';
+import cssnano from 'cssnano';
+
+export default {
+ input: 'build-config/entrypoints/css-yellow.js',
+ plugins: [cssbundle({
+ transform: code => postcss([cssnano]).process(code),
+ output: 'dist/uhr-yellow.min.css'
+ })]
+}
diff --git a/build-config/rollup.config.js-app.js b/build-config/rollup.config.js-app.js
new file mode 100644
index 0000000..5a040ca
--- /dev/null
+++ b/build-config/rollup.config.js-app.js
@@ -0,0 +1,23 @@
+import {terser} from 'rollup-plugin-terser';
+
+export default {
+ external: [
+ 'jquery',
+ 'jquery-ui',
+ 'jquery.cookie'
+ ],
+ input: 'build-config/entrypoints/js-app.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.main.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.main.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ]
+}
diff --git a/build-config/rollup.config.js-base.js b/build-config/rollup.config.js-base.js
new file mode 100644
index 0000000..0c5f2ba
--- /dev/null
+++ b/build-config/rollup.config.js-base.js
@@ -0,0 +1,23 @@
+import {terser} from 'rollup-plugin-terser';
+
+export default {
+ external: [
+ 'jquery',
+ 'jquery-ui',
+ 'jquery.cookie'
+ ],
+ input: 'build-config/entrypoints/js-base.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.base.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.base.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ]
+}
diff --git a/build-config/rollup.config.js-baselangs.js b/build-config/rollup.config.js-baselangs.js
new file mode 100644
index 0000000..c53f20e
--- /dev/null
+++ b/build-config/rollup.config.js-baselangs.js
@@ -0,0 +1,23 @@
+import {terser} from 'rollup-plugin-terser';
+
+export default {
+ external: [
+ 'jquery',
+ 'jquery-ui',
+ 'jquery.cookie'
+ ],
+ input: 'build-config/entrypoints/js-baselangs.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.baselangs.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.baselangs.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ]
+}
diff --git a/build-config/rollup.config.js-complete.js b/build-config/rollup.config.js-complete.js
new file mode 100644
index 0000000..36405df
--- /dev/null
+++ b/build-config/rollup.config.js-complete.js
@@ -0,0 +1,23 @@
+import {terser} from 'rollup-plugin-terser';
+
+export default {
+ external: [
+ 'jquery',
+ 'jquery-ui',
+ 'jquery.cookie'
+ ],
+ input: 'build-config/entrypoints/js-complete.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.complete.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.complete.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ]
+}
diff --git a/build-config/rollup.config.js-langs.js b/build-config/rollup.config.js-langs.js
new file mode 100644
index 0000000..3024332
--- /dev/null
+++ b/build-config/rollup.config.js-langs.js
@@ -0,0 +1,23 @@
+import {terser} from 'rollup-plugin-terser';
+
+export default {
+ external: [
+ 'jquery',
+ 'jquery-ui',
+ 'jquery.cookie'
+ ],
+ input: 'build-config/entrypoints/js-langs.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.langs.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'jquery.uhr.langs.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ]
+}
diff --git a/build-config/rollup.config.js-libs.js b/build-config/rollup.config.js-libs.js
new file mode 100644
index 0000000..238fad0
--- /dev/null
+++ b/build-config/rollup.config.js-libs.js
@@ -0,0 +1,21 @@
+import {terser} from 'rollup-plugin-terser';
+import {nodeResolve} from '@rollup/plugin-node-resolve';
+
+export default {
+ input: 'build-config/entrypoints/js-libs.js',
+ output: [
+ {
+ dir: 'dist',
+ entryFileNames: 'libs.js',
+ format: 'cjs'
+ },
+ {
+ dir: 'dist',
+ entryFileNames: 'libs.min.js',
+ format: 'cjs',
+ plugins: [terser()]
+ }
+ ],
+ context: 'this',
+ plugins: [nodeResolve()]
+}
diff --git a/dist/jquery.uhr.base.js b/dist/jquery.uhr.base.js
index 12cba0e..0356c71 100644
--- a/dist/jquery.uhr.base.js
+++ b/dist/jquery.uhr.base.js
@@ -1,8 +1,20 @@
-/*! uhr - v9.0.0-dev.0 - 2019-05-03
-* http://bärneruhr.ch/
-* Copyright (c) 2019 Manuel Friedli; Licensed GPL-3.0 */
+'use strict';
+
+/*
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ */
(function ($) {
- 'use strict';
var uhrGlobals = {
"id": 0,
"languages": [],
@@ -804,8 +816,21 @@
$.fritteli.uhr.register = uhrGlobals.registerLanguage;
})(jQuery);
+/*
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ */
(function($) {
- 'use strict';
// hilfsvariablen
var es_isch = {1: [1, 2, 4, 5, 6, 7]};
var ab = {4: [1, 2]};
diff --git a/dist/jquery.uhr.base.min.js b/dist/jquery.uhr.base.min.js
index 1515a36..0025b56 100644
--- a/dist/jquery.uhr.base.min.js
+++ b/dist/jquery.uhr.base.min.js
@@ -1,5 +1 @@
-/*! uhr - v9.0.0-dev.0 - 2019-05-03
-* http://bärneruhr.ch/
-* Copyright (c) 2019 Manuel Friedli; Licensed GPL-3.0 */
-
-!function(u){"use strict";var i,e,n,l={id:0,languages:[],themes:[],registerLanguage:function(i,e){l.languages.some(function(t){return i===t.code&&(console.error("Error: Language code '"+i+"' cannot be registered for language '"+e.language+"' because it is already registered for language '"+t.language+"'!"),!0)})||(e.code=i,l.languages.push(e))}};u("link[rel=stylesheet]").each(function(t,i){var e=u(i),n=e.attr("data-class");if(void 0!==n){var s=e.attr("data-name");void 0===s&&(s=n),l.themes.push({styleClass:n,name:s})}}),0===l.themes.length&&l.themes.push({});var s;function y(t,i){var e=t,n=i||"";this.addStyle=function(t){""===n?n=t:n+=" "+t},this.toString=function(){return''+e+""}}function o(t){var i={3:[2,3,4],4:[1,5],5:[1,4,5],6:[1,3,5],7:[1,2,5],8:[1,5],9:[2,3,4]},e={3:[8,9,10],4:[7,11],5:[7,10,11],6:[7,9,11],7:[7,8,11],8:[7,11],9:[8,9,10]},n={3:[3],4:[2,3],5:[3],6:[3],7:[3],8:[3],9:[2,3,4]},s={3:[9],4:[8,9],5:[9],6:[9],7:[9],8:[9],9:[8,9,10]},o={3:[2,3,4],4:[1,5],5:[5],6:[4],7:[3],8:[2],9:[1,2,3,4,5]},h={3:[8,9,10],4:[7,11],5:[11],6:[10],7:[9],8:[8],9:[7,8,9,10,11]},a={3:[1,2,3,4,5],4:[4],5:[3],6:[4],7:[5],8:[1,5],9:[2,3,4]},r={3:[7,8,9,10,11],4:[10],5:[9],6:[10],7:[11],8:[7,11],9:[8,9,10]},c={3:[4],4:[3,4],5:[2,4],6:[1,4],7:[1,2,3,4,5],8:[4],9:[4]},d={3:[10],4:[9,10],5:[8,10],6:[7,10],7:[7,8,9,10,11],8:[10],9:[10]},u={3:[1,2,3,4,5],4:[1],5:[1,2,3,4],6:[5],7:[5],8:[1,5],9:[2,3,4]},l={3:[7,8,9,10,11],4:[7],5:[7,8,9,10],6:[11],7:[11],8:[7,11],9:[8,9,10]},f={3:[9,10],4:[8],5:[7],6:[7,8,9,10],7:[7,11],8:[7,11],9:[8,9,10]},p={3:[7,8,9,10,11],4:[11],5:[10],6:[9],7:[8],8:[8],9:[8]},g={3:[8,9,10],4:[7,11],5:[7,11],6:[8,9,10],7:[7,11],8:[7,11],9:[8,9,10]},m={3:[8,9,10],4:[7,11],5:[7,11],6:[8,9,10,11],7:[11],8:[10],9:[8,9]},v={0:[i,e],1:[i,s],2:[i,h],3:[i,r],4:[i,d],5:[i,l],6:[i,f],7:[i,p],8:[i,g],9:[i,m],10:[n,e],11:[n,s],12:[n,h],13:[n,r],14:[n,d],15:[n,l],16:[n,f],17:[n,p],18:[n,g],19:[n,m],20:[o,e],21:[o,s],22:[o,h],23:[o,r],24:[o,d],25:[o,l],26:[o,f],27:[o,p],28:[o,g],29:[o,m],30:[a,e],31:[a,s],32:[a,h],33:[a,r],34:[a,d],35:[a,l],36:[a,f],37:[a,p],38:[a,g],39:[a,m],40:[c,e],41:[c,s],42:[c,h],43:[c,r],44:[c,d],45:[c,l],46:[c,f],47:[c,p],48:[c,g],49:[c,m],50:[u,e],51:[u,s],52:[u,h],53:[u,r],54:[u,d],55:[u,l],56:[u,f],57:[u,p],58:[u,g],59:[u,m]};function b(e,n,t){null!=t&&Object.keys(t).forEach(function(i){t[i].forEach(function(t){e[i-1][t-1].addStyle(n)})})}function w(i,e,t){null!=t&&(Array.isArray(t)?t.forEach(function(t){b(i,e,t)}):b(i,e,t))}function k(n,s,o){null!=o&&Object.keys(o).forEach(function(t){var i=t.split(","),e=o[t];i.forEach(function(t){w(n,s+t,e)})})}this.parse=function(){var s=[];return t.letters.forEach(function(t){for(var i=[],e=0;e")}),"function"==typeof t&&t(),s.fadeIn("fast")})}}function f(t){this.options.mode=t,this.currentMinute=-1,n.bind(this)(),i.bind(this)("uhr-mode",t)}function p(t){var i=this.element;i.css("width",t);var e=i.width();i.width(e),i.height(e),i.css("font-size",e/40+"px")}var a,r;a=function(){var t=this.element;if(t.addClass("uhr"),t.empty(),t.append(''),t.append(''),t.append(''),t.append(''),t.append(''),t.append(''),p.bind(this)(this.options.width),this.options.controls){var i=u(''),e=u('');i.append(e);var n=u('');n.append(''),n.append(''),e.append(n);var s=u('');if(s.append(''),s.append(''),e.append(s),1');l.languages.forEach(function(t){o.append('")}),e.append(o)}if(1');l.themes.forEach(function(t){h.append('")}),e.append(h)}var a=u('');a.on("click",function(){u("#uhr-controlpanel"+this.id).hide("fast")}.bind(this)),e.append(a),t.after(i),i.hide();var r=u('');r.on("click",function(){(function(){u("#uhr-controlpanel"+this.id).toggle("fast")}).bind(this)()}.bind(this)),t.after(r)}},r=function(){var t=u("#uhr-onoffswitch-checkbox"+this.id);t.on("click",function(){this.toggle()}.bind(this));var i=u.cookie("uhr-status"+this.id);void 0!==i&&!this.options.force||(i=this.options.status),t.prop("checked","on"===i),"on"===i?this.start():this.stop();var e=u("#uhr-modeswitch-checkbox"+this.id);e.on("click",function(){"seconds"===this.options.mode?f.bind(this)("normal"):f.bind(this)("seconds")}.bind(this));var n=u.cookie("uhr-mode"+this.id);void 0!==n&&!this.options.force||(n=this.options.mode),e.prop("checked","seconds"!==n),"seconds"===n?f.bind(this)("seconds"):f.bind(this)("normal");var s=u("#uhr-languagechooser"+this.id);s.on("change",function(){var t=u("#uhr-languagechooser"+this.id).val();this.language(t)}.bind(this));var o=u.cookie("uhr-language"+this.id);void 0!==o&&!this.options.force||(o=this.options.language);var h,a=l.languages.some(function(t){return o===t.code});a||(h=0'+e+""}}function a(t){var i={3:[2,3,4],4:[1,5],5:[1,4,5],6:[1,3,5],7:[1,2,5],8:[1,5],9:[2,3,4]},e={3:[8,9,10],4:[7,11],5:[7,10,11],6:[7,9,11],7:[7,8,11],8:[7,11],9:[8,9,10]},n={3:[3],4:[2,3],5:[3],6:[3],7:[3],8:[3],9:[2,3,4]},s={3:[9],4:[8,9],5:[9],6:[9],7:[9],8:[9],9:[8,9,10]},o={3:[2,3,4],4:[1,5],5:[5],6:[4],7:[3],8:[2],9:[1,2,3,4,5]},a={3:[8,9,10],4:[7,11],5:[11],6:[10],7:[9],8:[8],9:[7,8,9,10,11]},r={3:[1,2,3,4,5],4:[4],5:[3],6:[4],7:[5],8:[1,5],9:[2,3,4]},c={3:[7,8,9,10,11],4:[10],5:[9],6:[10],7:[11],8:[7,11],9:[8,9,10]},d={3:[4],4:[3,4],5:[2,4],6:[1,4],7:[1,2,3,4,5],8:[4],9:[4]},u={3:[10],4:[9,10],5:[8,10],6:[7,10],7:[7,8,9,10,11],8:[10],9:[10]},l={3:[1,2,3,4,5],4:[1],5:[1,2,3,4],6:[5],7:[5],8:[1,5],9:[2,3,4]},f={3:[7,8,9,10,11],4:[7],5:[7,8,9,10],6:[11],7:[11],8:[7,11],9:[8,9,10]},p={3:[9,10],4:[8],5:[7],6:[7,8,9,10],7:[7,11],8:[7,11],9:[8,9,10]},g={3:[7,8,9,10,11],4:[11],5:[10],6:[9],7:[8],8:[8],9:[8]},m={3:[8,9,10],4:[7,11],5:[7,11],6:[8,9,10],7:[7,11],8:[7,11],9:[8,9,10]},v={3:[8,9,10],4:[7,11],5:[7,11],6:[8,9,10,11],7:[11],8:[10],9:[8,9]},b={0:[i,e],1:[i,s],2:[i,a],3:[i,c],4:[i,u],5:[i,f],6:[i,p],7:[i,g],8:[i,m],9:[i,v],10:[n,e],11:[n,s],12:[n,a],13:[n,c],14:[n,u],15:[n,f],16:[n,p],17:[n,g],18:[n,m],19:[n,v],20:[o,e],21:[o,s],22:[o,a],23:[o,c],24:[o,u],25:[o,f],26:[o,p],27:[o,g],28:[o,m],29:[o,v],30:[r,e],31:[r,s],32:[r,a],33:[r,c],34:[r,u],35:[r,f],36:[r,p],37:[r,g],38:[r,m],39:[r,v],40:[d,e],41:[d,s],42:[d,a],43:[d,c],44:[d,u],45:[d,f],46:[d,p],47:[d,g],48:[d,m],49:[d,v],50:[l,e],51:[l,s],52:[l,a],53:[l,c],54:[l,u],55:[l,f],56:[l,p],57:[l,g],58:[l,m],59:[l,v]};function w(t,i,e){null!=e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[n-1][e-1].addStyle(i)}))}))}function k(t,i,e){null!=e&&(Array.isArray(e)?e.forEach((function(e){w(t,i,e)})):w(t,i,e))}function y(t,i,e){null!=e&&Object.keys(e).forEach((function(n){var s=n.split(","),o=e[n];s.forEach((function(e){k(t,i+e,o)}))}))}this.parse=function(){var i=[];return t.letters.forEach((function(t){for(var e=[],n=0;n")})),"function"==typeof e&&e(),i.fadeIn("fast")}))}}var c,d,u=function(t){this.options.mode=t,this.currentMinute=-1,n.bind(this)(),i.bind(this)("uhr-mode",t)},l=function(t){var i=this.element;i.css("width",t);var e=i.width();i.width(e),i.height(e),i.css("font-size",e/40+"px")},f=function(){t("#uhr-controlpanel"+this.id).toggle("fast")};c=function(){var i=this.element;if(i.addClass("uhr"),i.empty(),i.append(''),i.append(''),i.append(''),i.append(''),i.append(''),i.append(''),l.bind(this)(this.options.width),this.options.controls){var e=t(''),n=t('');e.append(n);var o=t('');o.append(''),o.append(''),n.append(o);var h=t('');if(h.append(''),h.append(''),n.append(h),s.languages.length>1){var a=t('');s.languages.forEach((function(t){a.append('")})),n.append(a)}if(s.themes.length>1){var r=t('');s.themes.forEach((function(t){r.append('")})),n.append(r)}var c=t('');c.on("click",function(){t("#uhr-controlpanel"+this.id).hide("fast")}.bind(this)),n.append(c),i.after(e),e.hide();var d=t('');d.on("click",function(){f.bind(this)()}.bind(this)),i.after(d)}},d=function(){var i=t("#uhr-onoffswitch-checkbox"+this.id);i.on("click",function(){this.toggle()}.bind(this));var e=t.cookie("uhr-status"+this.id);(void 0===e||this.options.force)&&(e=this.options.status),i.prop("checked","on"===e),"on"===e?this.start():this.stop();var n=t("#uhr-modeswitch-checkbox"+this.id);n.on("click",function(){"seconds"===this.options.mode?u.bind(this)("normal"):u.bind(this)("seconds")}.bind(this));var o=t.cookie("uhr-mode"+this.id);(void 0===o||this.options.force)&&(o=this.options.mode),n.prop("checked","seconds"!==o),"seconds"===o?u.bind(this)("seconds"):u.bind(this)("normal");var h=t("#uhr-languagechooser"+this.id);h.on("change",function(){var i=t("#uhr-languagechooser"+this.id).val();this.language(i)}.bind(this));var a=t.cookie("uhr-language"+this.id);(void 0===a||this.options.force)&&(a=this.options.language);var r,c=s.languages.some((function(t){return a===t.code}));c||(r=s.languages.length>0?s.languages[0].code:"",console.warn("Language '"+a+"' not found! Using fallback '"+r+"'"),a=r);h.val(a),this.options.language="",this.language(a);var d=t("#uhr-themechooser"+this.id);d.on("change",function(){var i=t("#uhr-themechooser"+this.id).val();this.theme(i)}.bind(this));var f=t.cookie("uhr-theme"+this.id);if((void 0===f||this.options.force)&&(f=this.options.theme),!(c=s.themes.some((function(t){return f===t.styleClass})))){var p=s.themes[0].styleClass;console.warn("Theme '"+f+"' not found! Using fallback '"+p+"'"),f=p}d.val(f),this.options.theme="",this.theme(f),this.options.autoresize&&t(window).on("resize",function(){var i=this.element.parent(),e=t(window),n=i.width(),s=i.height(),o=e.width(),h=e.height(),a=Math.min(n,s,o,h)+"px";l.bind(this)(a)}.bind(this))};var p,g,m,v,b,w,k;i=function(i,e){var n={};n=void 0!==this.options.cookiePath?{expires:365,path:this.options.cookiePath}:{expires:365},t.cookie(i+this.id,e,n)},e=function(){return null!==this.timer},n=function(){if(e.bind(this)()){var t=this.options.time;if(!o.bind(this)().hasOwnProperty("seconds")&&"seconds"!==this.options.mode){if(t.getMinutes()===this.currentMinute)return;this.currentMinute=t.getMinutes()}p.bind(this)(t)}else g.bind(this)(),this.currentMinute=-1},p=function(t){var i=v.bind(this)(t),e=b.bind(this)(t),n=k.bind(this)(t),s=w.bind(this)(t);if(g.bind(this)(),"seconds"===this.options.mode)m.bind(this)("second"+i);else{m.bind(this)("on");for(var o=1;o<=e;o++)m.bind(this)("dot"+o);m.bind(this)("minute"+s),m.bind(this)("hour"+n)}},m=function(t){this.element.find(".item."+t).addClass("active")},g=function(){this.element.find(".item").removeClass("active")},v=function(t){return"function"==typeof o.bind(this)().getSeconds?o.bind(this)().getSeconds(t):t.getSeconds()},b=function(t){return"function"==typeof o.bind(this)().getDotMinute?o.bind(this)().getDotMinute(t):t.getMinutes()%5},w=function(t){return"function"==typeof o.bind(this)().getCoarseMinute?o.bind(this)().getCoarseMinute(t):t.getMinutes()},k=function(t){if("function"==typeof o.bind(this)().getHour)return o.bind(this)().getHour(t);var i=t.getHours();return t.getMinutes()>=25?(i+1)%24:i},o=function(){var t=s.languages.filter((function(t){return t.code===this.options.language}),this);return t.length>0?t[0]:{}},t.widget("fritteli.uhr",{options:{width:"100%",status:"on",language:"de_CH",theme:s.themes[0].styleClass,force:!1,controls:!0,cookiePath:void 0,autoresize:!0,mode:"normal"},start:function(){e.bind(this)()||(this.timer=window.setInterval(function(){this.options.time=new Date,n.bind(this)()}.bind(this),1e3),n.bind(this)(),i.bind(this)("uhr-status","on"))},stop:function(){e.bind(this)()&&(window.clearInterval(this.timer),this.timer=null,n.bind(this)(),i.bind(this)("uhr-status","off"))},toggle:function(){e.bind(this)()?this.stop():this.start()},language:function(t){t!==this.options.language&&(this.options.language=t,new r(o.bind(this)(),this.element.find(".letterarea")).render.bind(this)(function(){this.currentMinute=-1,n.bind(this)()}.bind(this)),i.bind(this)("uhr-language",t),n.bind(this)())},theme:function(e){e!==this.options.theme&&(this.element.removeClass(this.options.theme).addClass(e),t("#uhr-onoffswitch"+this.id).removeClass(this.options.theme).addClass(e),this.options.theme=e,i.bind(this)("uhr-theme",e))},time:function(t){this.currentMinute=-1,null===t?this.options.time=new Date:(null!==this.timer&&window.clearInterval(this.timer),this.options.time=t),n.bind(this)()},mode:u,width:l,_create:function(){this.id=s.id++,this.timer=null,this.currentMinute=-1;var t,i=this.options.time;void 0===this.options.time&&(this.options.time=new Date),void 0!==(t=window.location.hash)&&"string"==typeof t&&"#"===t.charAt(0)&&(t=t.substring(1),(t=decodeURIComponent(t)).split("&").forEach(function(t){var i=t.split("="),e=i[0],n=i[1];switch(e){case"l":case"language":this.options.language=n,this.options.force=!0;break;case"t":case"theme":this.options.theme=n,this.options.force=!0;break;case"m":case"mode":this.options.mode=n,this.options.force=!0;break;case"s":case"status":this.options.status=n,this.options.force=!0}}.bind(this))),c.bind(this)(),d.bind(this)(),void 0!==i&&this.time(i)},_destroy:function(){this.timer=null,t(this.element).removeAttr("style").removeAttr("class").empty(),t("#uhr-configlink"+this.id).remove(),t("#uhr-controlpanel"+this.id).remove()}}),t.fritteli.uhr.register=s.registerLanguage}(jQuery),a={version:2,language:"Bärndütsch",letters:["ESKISCHAFÜF","VIERTUBFZÄÄ","ZWÄNZGSIVOR","ABOHAUBIEGE","EISZWÖISDRÜ","VIERIFÜFIQT","SÄCHSISIBNI","ACHTINÜNIEL","ZÄNIERBEUFI","ZWÖUFINAUHR"],permanent:{1:[1,2,4,5,6,7]},minutes:{"5,6,7,8,9":[n={1:[9,10,11]},t={4:[1,2]}],"10,11,12,13,14":[s={2:[9,10,11]},t],"15,16,17,18,19":[o={2:[1,2,3,4,5,6]},t],"20,21,22,23,24":[h={3:[1,2,3,4,5,6]},t],"25,26,27,28,29":[n,i={3:[9,10,11]},e={4:[4,5,6,7,8]}],"30,31,32,33,34":e,"35,36,37,38,39":[n,t,e],"40,41,42,43,44":[h,i],"45,46,47,48,49":[o,i],"50,51,52,53,54":[s,i],"55,56,57,58,59":[n,i]},hours:{"0,12":{10:[1,2,3,4,5,6]},"1,13":{5:[1,2,3]},"2,14":{5:[4,5,6,7]},"3,15":{5:[9,10,11]},"4,16":{6:[1,2,3,4,5]},"5,17":{6:[6,7,8,9]},"6,18":{7:[1,2,3,4,5,6]},"7,19":{7:[7,8,9,10,11]},"8,20":{8:[1,2,3,4,5]},"9,21":{8:[6,7,8,9]},"10,22":{9:[1,2,3,4]},"11,23":{9:[8,9,10,11]}}},jQuery.fritteli.uhr.register("de_CH",a);
diff --git a/dist/jquery.uhr.baselangs.js b/dist/jquery.uhr.baselangs.js
index dab317c..10d70de 100644
--- a/dist/jquery.uhr.baselangs.js
+++ b/dist/jquery.uhr.baselangs.js
@@ -1,8 +1,20 @@
-/*! uhr - v9.0.0-dev.0 - 2019-05-03
-* http://bärneruhr.ch/
-* Copyright (c) 2019 Manuel Friedli; Licensed GPL-3.0 */
+'use strict';
+
+/*
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ */
(function($) {
- 'use strict';
var es_ist = {1: [1, 2, 4, 5, 6]};
var uhr = {10: [9, 10, 11]};
var nach = {4: [8, 9, 10, 11]};
@@ -61,91 +73,22 @@
};
$.fritteli.uhr.register('de', layout);
}(jQuery));
+
+/*
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ */
(function($) {
- 'use strict';
-// hilfsvariablen
- var es_isch = {1: [1, 2, 4, 5, 6, 7]};
- var ab = {4: [1, 2]};
- var vor = {3: [9, 10, 11]};
- var haubi = {4: [4, 5, 6, 7, 8]};
- var fuef = {1: [9, 10, 11]};
- var zae = {2: [9, 10, 11]};
- var viertu = {2: [1, 2, 3, 4, 5, 6]};
- var zwaenzg = {3: [1, 2, 3, 4, 5, 6]};
- var layout = {
- // version: zur Zeit immer 2 (Pflichtattribut)
- "version": 2,
- // Sprechender Name der Sprache
- "language": 'Bärndütsch',
- // Buchstabenfeld als Array von Strings.
- "letters": [
- 'ESKISCHAFÜF',
- 'VIERTUBFZÄÄ',
- 'ZWÄNZGSIVOR',
- 'ABOHAUBIEGE',
- 'EISZWÖISDRÜ',
- 'VIERIFÜFIQT',
- 'SÄCHSISIBNI',
- 'ACHTINÜNIEL',
- 'ZÄNIERBEUFI',
- 'ZWÖUFINAUHR'
- ],
- // Permanent aktive Buchstaben. , vgl. ausführliche Beschreibung bei "minutes".
- "permanent": es_isch,
- /*
- * Minuten: Objekt im folgenden Format:
- * {
- * : ,
- * ...
- * }
- * : String von Komma-separierten Minutenwerten, zu welchem die in angegebenen Buchstaben aktiv sein sollen
- * : [