fcad-core-dragon 2.0.3 → 2.1.0-beta.2
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/.editorconfig +33 -33
- package/.eslintignore +29 -29
- package/.eslintrc.cjs +81 -81
- package/CHANGELOG +27 -0
- package/bk.scss +117 -117
- package/package.json +1 -1
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppCompInputCheckBoxNx.vue +1 -1
- package/src/components/AppCompInputDropdownNx.vue +4 -0
- package/src/components/AppCompInputRadioNx.vue +15 -1
- package/src/components/AppCompInputTextNx.vue +5 -0
- package/src/components/AppCompInputTextTableNx.vue +4 -0
- package/src/components/AppCompInputTextToFillDropdownNx.vue +4 -0
- package/src/components/AppCompInputTextToFillNx.vue +37 -1
- package/src/components/AppCompPlayBarProgress.vue +82 -82
- package/src/components/AppCompQuizNext.vue +1 -1
- package/src/components/AppCompSettingsMenu.vue +172 -172
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/module/xapi/Crypto/Hasher.js +241 -241
- package/src/module/xapi/Crypto/WordArray.js +278 -278
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
- package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
- package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
- package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
- package/src/module/xapi/Crypto/encoders/Base.js +105 -105
- package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
- package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
- package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
- package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
- package/src/module/xapi/Crypto/index.js +53 -53
- package/src/module/xapi/Statement/activity.js +47 -47
- package/src/module/xapi/Statement/agent.js +55 -55
- package/src/module/xapi/Statement/group.js +26 -26
- package/src/module/xapi/Statement/index.js +259 -259
- package/src/module/xapi/Statement/statement.js +253 -253
- package/src/module/xapi/Statement/statementRef.js +23 -23
- package/src/module/xapi/Statement/substatement.js +22 -22
- package/src/module/xapi/Statement/verb.js +36 -36
- package/src/module/xapi/activitytypes.js +17 -17
- package/src/module/xapi/utils.js +167 -167
- package/src/module/xapi/verbs.js +294 -294
- package/src/module/xapi/xapiStatement.js +444 -444
- package/src/plugins/bus.js +8 -8
- package/src/plugins/gsap.js +14 -14
- package/src/plugins/i18n.js +44 -44
- package/src/plugins/save.js +37 -37
- package/src/plugins/scorm.js +287 -287
- package/src/plugins/xapi.js +11 -11
- package/src/public/index.html +33 -33
|
@@ -1,172 +1,172 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<b-sidebar
|
|
3
|
-
id="sidebar-settings"
|
|
4
|
-
title="Settings"
|
|
5
|
-
right
|
|
6
|
-
shadow
|
|
7
|
-
backdrop
|
|
8
|
-
no-header
|
|
9
|
-
@hidden="onClose"
|
|
10
|
-
>
|
|
11
|
-
<div class="pl-3 pr-3">
|
|
12
|
-
<b-form-group :label="$t('user_settings.title')">
|
|
13
|
-
<b-form-checkbox
|
|
14
|
-
v-for="(setting, index) in Object.entries(settingsSelected)"
|
|
15
|
-
:key="index"
|
|
16
|
-
v-model="settingsSelected[setting[0]]"
|
|
17
|
-
:aria-describedby="ariaDescribedby"
|
|
18
|
-
:name="`parameter-${setting[0]}`"
|
|
19
|
-
:text-field="$t(`user_settings.${setting[0]}`)"
|
|
20
|
-
switch
|
|
21
|
-
stacked
|
|
22
|
-
size="lg"
|
|
23
|
-
@change="onSettingsChange"
|
|
24
|
-
>
|
|
25
|
-
<span>{{ $t(`user_settings.${setting[0]}`) }}</span>
|
|
26
|
-
</b-form-checkbox>
|
|
27
|
-
</b-form-group>
|
|
28
|
-
<app-base-button
|
|
29
|
-
v-b-toggle.sidebar-settings
|
|
30
|
-
class="float-right btn-primary"
|
|
31
|
-
:title="$t('user_settings.close')"
|
|
32
|
-
>
|
|
33
|
-
{{ $t('user_settings.close') }}
|
|
34
|
-
</app-base-button>
|
|
35
|
-
</div>
|
|
36
|
-
</b-sidebar>
|
|
37
|
-
</template>
|
|
38
|
-
|
|
39
|
-
<script>
|
|
40
|
-
import { mapState, mapActions } from 'pinia'
|
|
41
|
-
import { useAppStore } from '../module/stores/appStore'
|
|
42
|
-
import AppBaseButton from './AppBaseButton.vue'
|
|
43
|
-
|
|
44
|
-
export default {
|
|
45
|
-
components: { AppBaseButton },
|
|
46
|
-
props: {},
|
|
47
|
-
data() {
|
|
48
|
-
return {
|
|
49
|
-
settingsSelected: {},
|
|
50
|
-
settingsNeedUpdate: false
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
computed: {
|
|
54
|
-
...mapState(useAppStore, [
|
|
55
|
-
'getApplicationSettings',
|
|
56
|
-
'getModuleInfo',
|
|
57
|
-
'getUserInteraction',
|
|
58
|
-
'getConnectionInfo',
|
|
59
|
-
'onboardingEnabled'
|
|
60
|
-
]),
|
|
61
|
-
settingsOptions() {
|
|
62
|
-
return this.settingsOptionsELPlus
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
watch: {
|
|
66
|
-
getApplicationSettings: {
|
|
67
|
-
immediate: true,
|
|
68
|
-
deep: true,
|
|
69
|
-
handler() {
|
|
70
|
-
this.getAppSettingsInStore()
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
created() {
|
|
75
|
-
setTimeout(() => this.getAppSettingsInStore(), 1700)
|
|
76
|
-
|
|
77
|
-
this.$bus.$on('save-settings', (settings) => {
|
|
78
|
-
this.saveSettings(settings)
|
|
79
|
-
})
|
|
80
|
-
},
|
|
81
|
-
methods: {
|
|
82
|
-
...mapActions(useAppStore, [
|
|
83
|
-
'setApplicationSettings',
|
|
84
|
-
'updateUserMetaData'
|
|
85
|
-
]),
|
|
86
|
-
getAppSettingsInStore() {
|
|
87
|
-
this.settingsSelected = { ...this.getApplicationSettings }
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
//Save user settings to the store
|
|
91
|
-
onSettingsChange() {
|
|
92
|
-
this.settingsNeedUpdate = true
|
|
93
|
-
this.saveSettingsToStore(this.settingsSelected)
|
|
94
|
-
},
|
|
95
|
-
saveSettingsToStore(settings) {
|
|
96
|
-
this.setApplicationSettings(settings)
|
|
97
|
-
},
|
|
98
|
-
/**
|
|
99
|
-
* @description Save the user preferred settings to vue store and LRS or local store:
|
|
100
|
-
* LRS: Send a XAPI Statement to the LRS
|
|
101
|
-
* IndexedDB: Set a new Key for preferred settings in the userInteraction in store
|
|
102
|
-
* Update current value of settings
|
|
103
|
-
* @param {Object} appSettings - group of application settings {autoplay, subtitles, onboarding}
|
|
104
|
-
*
|
|
105
|
-
*/
|
|
106
|
-
saveSettings(appSettings) {
|
|
107
|
-
this.saveSettingsToStore(appSettings) //save to store
|
|
108
|
-
|
|
109
|
-
if (
|
|
110
|
-
this.getModuleInfo.packageType === 'xapi' &&
|
|
111
|
-
this.getConnectionInfo &&
|
|
112
|
-
this.getConnectionInfo.remote
|
|
113
|
-
) {
|
|
114
|
-
let text
|
|
115
|
-
//Defining the text to display for stmt description and definition
|
|
116
|
-
switch (this.$i18n.locale) {
|
|
117
|
-
case 'fr':
|
|
118
|
-
if (this.getModuleInfo.courseID)
|
|
119
|
-
text = `Le ${this.getModuleInfo.id} de ${this.getModuleInfo.courseID}`
|
|
120
|
-
else text = `Le ${this.getModuleInfo.id}`
|
|
121
|
-
break
|
|
122
|
-
case 'en':
|
|
123
|
-
if (this.getModuleInfo.courseID)
|
|
124
|
-
text = `The ${this.getModuleInfo.id} of ${this.getModuleInfo.courseID}`
|
|
125
|
-
else text = `The ${this.getModuleInfo.id}`
|
|
126
|
-
break
|
|
127
|
-
}
|
|
128
|
-
//Creating custom statement
|
|
129
|
-
const stmt = {
|
|
130
|
-
id: (() => {
|
|
131
|
-
return this.getModuleInfo.courseID
|
|
132
|
-
? this.getModuleInfo.courseID
|
|
133
|
-
: null
|
|
134
|
-
})(),
|
|
135
|
-
verb: 'preferred',
|
|
136
|
-
definition: text,
|
|
137
|
-
description: text,
|
|
138
|
-
extensions: [
|
|
139
|
-
{
|
|
140
|
-
id: 'application-settings',
|
|
141
|
-
content: {
|
|
142
|
-
userSettings: { ...appSettings }
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
]
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
setTimeout(() => {
|
|
149
|
-
this.$bus.$emit('send-xapi-statement', stmt) //send xapi statement
|
|
150
|
-
}, 1000)
|
|
151
|
-
} else {
|
|
152
|
-
this.$set(this.getUserInteraction, 'userSettings', appSettings) // adding the usersettings to user Interaction to save to save to the local DB
|
|
153
|
-
this.updateUserMetaData(this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
//update sidebar data
|
|
157
|
-
this.getAppSettingsInStore()
|
|
158
|
-
},
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* @description -Action to perform when the sidebar closed- will require saving when changing occurred
|
|
162
|
-
*/
|
|
163
|
-
onClose() {
|
|
164
|
-
if (this.settingsNeedUpdate) {
|
|
165
|
-
this.saveSettingsToStore(this.settingsSelected)
|
|
166
|
-
this.saveSettings(this.getApplicationSettings)
|
|
167
|
-
this.settingsNeedUpdate = false
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<b-sidebar
|
|
3
|
+
id="sidebar-settings"
|
|
4
|
+
title="Settings"
|
|
5
|
+
right
|
|
6
|
+
shadow
|
|
7
|
+
backdrop
|
|
8
|
+
no-header
|
|
9
|
+
@hidden="onClose"
|
|
10
|
+
>
|
|
11
|
+
<div class="pl-3 pr-3">
|
|
12
|
+
<b-form-group :label="$t('user_settings.title')">
|
|
13
|
+
<b-form-checkbox
|
|
14
|
+
v-for="(setting, index) in Object.entries(settingsSelected)"
|
|
15
|
+
:key="index"
|
|
16
|
+
v-model="settingsSelected[setting[0]]"
|
|
17
|
+
:aria-describedby="ariaDescribedby"
|
|
18
|
+
:name="`parameter-${setting[0]}`"
|
|
19
|
+
:text-field="$t(`user_settings.${setting[0]}`)"
|
|
20
|
+
switch
|
|
21
|
+
stacked
|
|
22
|
+
size="lg"
|
|
23
|
+
@change="onSettingsChange"
|
|
24
|
+
>
|
|
25
|
+
<span>{{ $t(`user_settings.${setting[0]}`) }}</span>
|
|
26
|
+
</b-form-checkbox>
|
|
27
|
+
</b-form-group>
|
|
28
|
+
<app-base-button
|
|
29
|
+
v-b-toggle.sidebar-settings
|
|
30
|
+
class="float-right btn-primary"
|
|
31
|
+
:title="$t('user_settings.close')"
|
|
32
|
+
>
|
|
33
|
+
{{ $t('user_settings.close') }}
|
|
34
|
+
</app-base-button>
|
|
35
|
+
</div>
|
|
36
|
+
</b-sidebar>
|
|
37
|
+
</template>
|
|
38
|
+
|
|
39
|
+
<script>
|
|
40
|
+
import { mapState, mapActions } from 'pinia'
|
|
41
|
+
import { useAppStore } from '../module/stores/appStore'
|
|
42
|
+
import AppBaseButton from './AppBaseButton.vue'
|
|
43
|
+
|
|
44
|
+
export default {
|
|
45
|
+
components: { AppBaseButton },
|
|
46
|
+
props: {},
|
|
47
|
+
data() {
|
|
48
|
+
return {
|
|
49
|
+
settingsSelected: {},
|
|
50
|
+
settingsNeedUpdate: false
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
computed: {
|
|
54
|
+
...mapState(useAppStore, [
|
|
55
|
+
'getApplicationSettings',
|
|
56
|
+
'getModuleInfo',
|
|
57
|
+
'getUserInteraction',
|
|
58
|
+
'getConnectionInfo',
|
|
59
|
+
'onboardingEnabled'
|
|
60
|
+
]),
|
|
61
|
+
settingsOptions() {
|
|
62
|
+
return this.settingsOptionsELPlus
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
watch: {
|
|
66
|
+
getApplicationSettings: {
|
|
67
|
+
immediate: true,
|
|
68
|
+
deep: true,
|
|
69
|
+
handler() {
|
|
70
|
+
this.getAppSettingsInStore()
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
created() {
|
|
75
|
+
setTimeout(() => this.getAppSettingsInStore(), 1700)
|
|
76
|
+
|
|
77
|
+
this.$bus.$on('save-settings', (settings) => {
|
|
78
|
+
this.saveSettings(settings)
|
|
79
|
+
})
|
|
80
|
+
},
|
|
81
|
+
methods: {
|
|
82
|
+
...mapActions(useAppStore, [
|
|
83
|
+
'setApplicationSettings',
|
|
84
|
+
'updateUserMetaData'
|
|
85
|
+
]),
|
|
86
|
+
getAppSettingsInStore() {
|
|
87
|
+
this.settingsSelected = { ...this.getApplicationSettings }
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
//Save user settings to the store
|
|
91
|
+
onSettingsChange() {
|
|
92
|
+
this.settingsNeedUpdate = true
|
|
93
|
+
this.saveSettingsToStore(this.settingsSelected)
|
|
94
|
+
},
|
|
95
|
+
saveSettingsToStore(settings) {
|
|
96
|
+
this.setApplicationSettings(settings)
|
|
97
|
+
},
|
|
98
|
+
/**
|
|
99
|
+
* @description Save the user preferred settings to vue store and LRS or local store:
|
|
100
|
+
* LRS: Send a XAPI Statement to the LRS
|
|
101
|
+
* IndexedDB: Set a new Key for preferred settings in the userInteraction in store
|
|
102
|
+
* Update current value of settings
|
|
103
|
+
* @param {Object} appSettings - group of application settings {autoplay, subtitles, onboarding}
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
saveSettings(appSettings) {
|
|
107
|
+
this.saveSettingsToStore(appSettings) //save to store
|
|
108
|
+
|
|
109
|
+
if (
|
|
110
|
+
this.getModuleInfo.packageType === 'xapi' &&
|
|
111
|
+
this.getConnectionInfo &&
|
|
112
|
+
this.getConnectionInfo.remote
|
|
113
|
+
) {
|
|
114
|
+
let text
|
|
115
|
+
//Defining the text to display for stmt description and definition
|
|
116
|
+
switch (this.$i18n.locale) {
|
|
117
|
+
case 'fr':
|
|
118
|
+
if (this.getModuleInfo.courseID)
|
|
119
|
+
text = `Le ${this.getModuleInfo.id} de ${this.getModuleInfo.courseID}`
|
|
120
|
+
else text = `Le ${this.getModuleInfo.id}`
|
|
121
|
+
break
|
|
122
|
+
case 'en':
|
|
123
|
+
if (this.getModuleInfo.courseID)
|
|
124
|
+
text = `The ${this.getModuleInfo.id} of ${this.getModuleInfo.courseID}`
|
|
125
|
+
else text = `The ${this.getModuleInfo.id}`
|
|
126
|
+
break
|
|
127
|
+
}
|
|
128
|
+
//Creating custom statement
|
|
129
|
+
const stmt = {
|
|
130
|
+
id: (() => {
|
|
131
|
+
return this.getModuleInfo.courseID
|
|
132
|
+
? this.getModuleInfo.courseID
|
|
133
|
+
: null
|
|
134
|
+
})(),
|
|
135
|
+
verb: 'preferred',
|
|
136
|
+
definition: text,
|
|
137
|
+
description: text,
|
|
138
|
+
extensions: [
|
|
139
|
+
{
|
|
140
|
+
id: 'application-settings',
|
|
141
|
+
content: {
|
|
142
|
+
userSettings: { ...appSettings }
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
setTimeout(() => {
|
|
149
|
+
this.$bus.$emit('send-xapi-statement', stmt) //send xapi statement
|
|
150
|
+
}, 1000)
|
|
151
|
+
} else {
|
|
152
|
+
this.$set(this.getUserInteraction, 'userSettings', appSettings) // adding the usersettings to user Interaction to save to save to the local DB
|
|
153
|
+
this.updateUserMetaData(this.getUserInteraction) //force update of the userInteraction to ensure saving of settings in local DB
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
//update sidebar data
|
|
157
|
+
this.getAppSettingsInStore()
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* @description -Action to perform when the sidebar closed- will require saving when changing occurred
|
|
162
|
+
*/
|
|
163
|
+
onClose() {
|
|
164
|
+
if (this.settingsNeedUpdate) {
|
|
165
|
+
this.saveSettingsToStore(this.settingsSelected)
|
|
166
|
+
this.saveSettings(this.getApplicationSettings)
|
|
167
|
+
this.settingsNeedUpdate = false
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
</script>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<router-view />
|
|
3
|
-
</template>
|
|
4
|
-
<script>
|
|
5
|
-
export default {}
|
|
6
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<router-view />
|
|
3
|
+
</template>
|
|
4
|
+
<script>
|
|
5
|
+
export default {}
|
|
6
|
+
</script>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<app-base-module :module-config="$data" />
|
|
3
|
-
</template>
|
|
4
|
-
|
|
5
|
-
<script>
|
|
6
|
-
export default {
|
|
7
|
-
data() {
|
|
8
|
-
return {
|
|
9
|
-
id: 'module_99',
|
|
10
|
-
consigneBehavior: 'onHover', //Controle the behavior of desplaying instruction
|
|
11
|
-
bookmarkActive: true, // Controle the use of saved point
|
|
12
|
-
allowNavigationToActivity: null
|
|
13
|
-
|
|
14
|
-
//main:''// Edit to define the ID of the node that will be main. When skipping to main content in the page.
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
created() {
|
|
18
|
-
this.allowNavigationToActivity =
|
|
19
|
-
this.$helper.getSettingsFromStore('auto_next_activity')
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<app-base-module :module-config="$data" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
export default {
|
|
7
|
+
data() {
|
|
8
|
+
return {
|
|
9
|
+
id: 'module_99',
|
|
10
|
+
consigneBehavior: 'onHover', //Controle the behavior of desplaying instruction
|
|
11
|
+
bookmarkActive: true, // Controle the use of saved point
|
|
12
|
+
allowNavigationToActivity: null
|
|
13
|
+
|
|
14
|
+
//main:''// Edit to define the ID of the node that will be main. When skipping to main content in the page.
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
created() {
|
|
18
|
+
this.allowNavigationToActivity =
|
|
19
|
+
this.$helper.getSettingsFromStore('auto_next_activity')
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<app-comp-menu></app-comp-menu>
|
|
4
|
-
<!-- <h6>normal</h6>
|
|
5
|
-
<div class="t normal"></div>
|
|
6
|
-
<h6>red</h6>
|
|
7
|
-
<div class="t red"></div>
|
|
8
|
-
<h6>green</h6>
|
|
9
|
-
<div class="t green"></div>
|
|
10
|
-
<h6>hue</h6>
|
|
11
|
-
<div class="t hue"></div>
|
|
12
|
-
<h6>Saturation</h6>
|
|
13
|
-
<div class="t saturation"></div>
|
|
14
|
-
<h6>desaturation</h6>
|
|
15
|
-
<div class="t desaturation"></div>
|
|
16
|
-
<h6>lighteness</h6>
|
|
17
|
-
<div class="t lighteness"></div>
|
|
18
|
-
<h6>darkness</h6>
|
|
19
|
-
<div class="t darkness"></div>
|
|
20
|
-
<h6>whiteness</h6>
|
|
21
|
-
<div class="t whiteness"></div>
|
|
22
|
-
<h6>blackness</h6>
|
|
23
|
-
<div class="t blackness"></div> -->
|
|
24
|
-
</div>
|
|
25
|
-
</template>
|
|
26
|
-
|
|
27
|
-
<script>
|
|
28
|
-
export default {
|
|
29
|
-
data() {
|
|
30
|
-
return {}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
34
|
-
<!-- <style lang="scss">
|
|
35
|
-
@use 'sass:color';
|
|
36
|
-
$color: #f11532;
|
|
37
|
-
$color-red: color.change($color, $red: 155);
|
|
38
|
-
$color-green: color.change($color, $green: 255);
|
|
39
|
-
$color-hue: adjust-hue($color, -30deg);
|
|
40
|
-
$color-saturation: color.scale($color, $saturation: 100%);
|
|
41
|
-
$color-desaturate: color.scale($color, $saturation: -50%);
|
|
42
|
-
$color-lighteness: color.scale($color, $lightness: 50%);
|
|
43
|
-
$color-darkness: color.scale($color, $lightness: -50%);
|
|
44
|
-
$color-whiteness: color.scale($color, $whiteness: 50%);
|
|
45
|
-
$color-blackness: color.scale($color, $blackness: 50%);
|
|
46
|
-
|
|
47
|
-
.t {
|
|
48
|
-
width: 50px;
|
|
49
|
-
height: 50px;
|
|
50
|
-
|
|
51
|
-
&.normal {
|
|
52
|
-
background: $color;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
&.red {
|
|
56
|
-
background: $color-red;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
&.green {
|
|
60
|
-
background: $color-green;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
&.hue {
|
|
64
|
-
background: $color-hue;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
&.saturation {
|
|
68
|
-
background: $color-saturation;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
&.desaturation {
|
|
72
|
-
background: $color-desaturate;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
&.lighteness {
|
|
76
|
-
background: $color-lighteness;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
&.darkness {
|
|
80
|
-
background: $color-darkness;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
&.whiteness {
|
|
84
|
-
background: $color-whiteness;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&.blackness {
|
|
88
|
-
background: $color-blackness;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
</style> -->
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<app-comp-menu></app-comp-menu>
|
|
4
|
+
<!-- <h6>normal</h6>
|
|
5
|
+
<div class="t normal"></div>
|
|
6
|
+
<h6>red</h6>
|
|
7
|
+
<div class="t red"></div>
|
|
8
|
+
<h6>green</h6>
|
|
9
|
+
<div class="t green"></div>
|
|
10
|
+
<h6>hue</h6>
|
|
11
|
+
<div class="t hue"></div>
|
|
12
|
+
<h6>Saturation</h6>
|
|
13
|
+
<div class="t saturation"></div>
|
|
14
|
+
<h6>desaturation</h6>
|
|
15
|
+
<div class="t desaturation"></div>
|
|
16
|
+
<h6>lighteness</h6>
|
|
17
|
+
<div class="t lighteness"></div>
|
|
18
|
+
<h6>darkness</h6>
|
|
19
|
+
<div class="t darkness"></div>
|
|
20
|
+
<h6>whiteness</h6>
|
|
21
|
+
<div class="t whiteness"></div>
|
|
22
|
+
<h6>blackness</h6>
|
|
23
|
+
<div class="t blackness"></div> -->
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
26
|
+
|
|
27
|
+
<script>
|
|
28
|
+
export default {
|
|
29
|
+
data() {
|
|
30
|
+
return {}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
<!-- <style lang="scss">
|
|
35
|
+
@use 'sass:color';
|
|
36
|
+
$color: #f11532;
|
|
37
|
+
$color-red: color.change($color, $red: 155);
|
|
38
|
+
$color-green: color.change($color, $green: 255);
|
|
39
|
+
$color-hue: adjust-hue($color, -30deg);
|
|
40
|
+
$color-saturation: color.scale($color, $saturation: 100%);
|
|
41
|
+
$color-desaturate: color.scale($color, $saturation: -50%);
|
|
42
|
+
$color-lighteness: color.scale($color, $lightness: 50%);
|
|
43
|
+
$color-darkness: color.scale($color, $lightness: -50%);
|
|
44
|
+
$color-whiteness: color.scale($color, $whiteness: 50%);
|
|
45
|
+
$color-blackness: color.scale($color, $blackness: 50%);
|
|
46
|
+
|
|
47
|
+
.t {
|
|
48
|
+
width: 50px;
|
|
49
|
+
height: 50px;
|
|
50
|
+
|
|
51
|
+
&.normal {
|
|
52
|
+
background: $color;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&.red {
|
|
56
|
+
background: $color-red;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.green {
|
|
60
|
+
background: $color-green;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&.hue {
|
|
64
|
+
background: $color-hue;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&.saturation {
|
|
68
|
+
background: $color-saturation;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&.desaturation {
|
|
72
|
+
background: $color-desaturate;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.lighteness {
|
|
76
|
+
background: $color-lighteness;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&.darkness {
|
|
80
|
+
background: $color-darkness;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
&.whiteness {
|
|
84
|
+
background: $color-whiteness;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.blackness {
|
|
88
|
+
background: $color-blackness;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
</style> -->
|