@oat-sa/tao-core-ui 1.67.0 → 2.0.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.
Files changed (239) hide show
  1. package/README.md +17 -16
  2. package/dist/animable/absorbable/css/absorb.css +25 -29
  3. package/dist/animable/absorbable/css/absorb.css.map +1 -1
  4. package/dist/animable/pulsable/css/pulse.css +20 -23
  5. package/dist/animable/pulsable/css/pulse.css.map +1 -1
  6. package/dist/autocomplete/css/autocomplete.css +20 -21
  7. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  8. package/dist/badge/css/badge.css +67 -79
  9. package/dist/badge/css/badge.css.map +1 -1
  10. package/dist/breadcrumbs/css/breadcrumbs.css +54 -61
  11. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
  12. package/dist/bulkActionPopup/css/bulkActionPopup.css +27 -42
  13. package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  14. package/dist/calculator/css/calculator.css +91 -112
  15. package/dist/calculator/css/calculator.css.map +1 -1
  16. package/dist/class/css/selector.css +83 -97
  17. package/dist/class/css/selector.css.map +1 -1
  18. package/dist/component/css/components.css +351 -406
  19. package/dist/component/css/components.css.map +1 -1
  20. package/dist/component/css/windowComponent.css +19 -28
  21. package/dist/component/css/windowComponent.css.map +1 -1
  22. package/dist/contextualPopup/css/contextualPopup.css +42 -55
  23. package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
  24. package/dist/dashboard/css/dashboard.css +43 -57
  25. package/dist/dashboard/css/dashboard.css.map +1 -1
  26. package/dist/datalist/css/datalist.css +63 -88
  27. package/dist/datalist/css/datalist.css.map +1 -1
  28. package/dist/datatable/css/datatable.css +84 -113
  29. package/dist/datatable/css/datatable.css.map +1 -1
  30. package/dist/dateRange/css/dateRange.css +1 -2
  31. package/dist/dateRange/css/dateRange.css.map +1 -1
  32. package/dist/datetime/css/picker.css +71 -103
  33. package/dist/datetime/css/picker.css.map +1 -1
  34. package/dist/destination/css/selector.css +17 -24
  35. package/dist/destination/css/selector.css.map +1 -1
  36. package/dist/documentViewer/css/documentViewer.css +137 -162
  37. package/dist/documentViewer/css/documentViewer.css.map +1 -1
  38. package/dist/dropdown/css/dropdown.css +55 -72
  39. package/dist/dropdown/css/dropdown.css.map +1 -1
  40. package/dist/dynamicComponent/css/dynamicComponent.css +78 -91
  41. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
  42. package/dist/form/css/dropdownForm.css +36 -45
  43. package/dist/form/css/dropdownForm.css.map +1 -1
  44. package/dist/form/css/form.css +12 -16
  45. package/dist/form/css/form.css.map +1 -1
  46. package/dist/form/validator/css/validator.css +5 -7
  47. package/dist/form/validator/css/validator.css.map +1 -1
  48. package/dist/form/widget/css/widget.css +26 -34
  49. package/dist/form/widget/css/widget.css.map +1 -1
  50. package/dist/generis/form/css/form.css +14 -18
  51. package/dist/generis/form/css/form.css.map +1 -1
  52. package/dist/generis/validator/css/validator.css +5 -7
  53. package/dist/generis/validator/css/validator.css.map +1 -1
  54. package/dist/generis/widget/css/widget.css +29 -38
  55. package/dist/generis/widget/css/widget.css.map +1 -1
  56. package/dist/itemButtonList/css/item-button-list.css +135 -172
  57. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  58. package/dist/listbox/css/listbox.css +64 -84
  59. package/dist/listbox/css/listbox.css.map +1 -1
  60. package/dist/loadingButton/css/button.css +20 -29
  61. package/dist/loadingButton/css/button.css.map +1 -1
  62. package/dist/maths/calculator/basicCalculator.js +4 -4
  63. package/dist/maths/calculator/calculatorComponent.js +22 -25
  64. package/dist/maths/calculator/core/board.js +12327 -720
  65. package/dist/maths/calculator/core/labels.js +7918 -138
  66. package/dist/maths/calculator/core/plugin.js +4 -5
  67. package/dist/maths/calculator/css/calculator.css +224 -270
  68. package/dist/maths/calculator/css/calculator.css.map +1 -1
  69. package/dist/maths/calculator/defaultCalculator.js +10 -6
  70. package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +23 -25
  71. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +7973 -194
  72. package/dist/maths/calculator/scientificCalculator.js +7 -12
  73. package/dist/mediaplayer/css/player.css +281 -370
  74. package/dist/mediaplayer/css/player.css.map +1 -1
  75. package/dist/pagination/css/pagination.css +38 -49
  76. package/dist/pagination/css/pagination.css.map +1 -1
  77. package/dist/propertySelector/css/propertySelector.css +34 -44
  78. package/dist/propertySelector/css/propertySelector.css.map +1 -1
  79. package/dist/resource/css/selector.css +400 -490
  80. package/dist/resource/css/selector.css.map +1 -1
  81. package/dist/resourcemgr/css/resourcemgr.css +192 -237
  82. package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
  83. package/dist/searchModal/css/advancedSearch.css +92 -121
  84. package/dist/searchModal/css/advancedSearch.css.map +1 -1
  85. package/dist/searchModal/css/searchModal.css +261 -333
  86. package/dist/searchModal/css/searchModal.css.map +1 -1
  87. package/dist/switch/css/switch.css +36 -47
  88. package/dist/switch/css/switch.css.map +1 -1
  89. package/dist/tabs/css/tabs.css +32 -40
  90. package/dist/tabs/css/tabs.css.map +1 -1
  91. package/dist/taskQueue/css/taskQueue.css +17 -27
  92. package/dist/taskQueue/css/taskQueue.css.map +1 -1
  93. package/dist/taskQueueButton/css/taskable.css +1 -2
  94. package/dist/taskQueueButton/css/taskable.css.map +1 -1
  95. package/dist/taskQueueButton/css/treeButton.css +20 -26
  96. package/dist/taskQueueButton/css/treeButton.css.map +1 -1
  97. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +3 -5
  98. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  99. package/dist/waitingDialog/css/waitingDialog.css +18 -23
  100. package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
  101. package/package.json +20 -24
  102. package/scss/inc/_base.scss +9 -8
  103. package/scss/inc/_flex-grid.scss +1 -1
  104. package/scss/inc/_forms.scss +5 -5
  105. package/scss/inc/_functions.scss +8 -8
  106. package/scss/inc/fonts/_tao-icon-classes.scss +230 -230
  107. package/src/animable/absorbable/css/absorb.css +25 -29
  108. package/src/animable/absorbable/css/absorb.css.map +1 -1
  109. package/src/animable/pulsable/css/pulse.css +20 -23
  110. package/src/animable/pulsable/css/pulse.css.map +1 -1
  111. package/src/autocomplete/css/autocomplete.css +20 -21
  112. package/src/autocomplete/css/autocomplete.css.map +1 -1
  113. package/src/badge/css/badge.css +67 -79
  114. package/src/badge/css/badge.css.map +1 -1
  115. package/src/breadcrumbs/css/breadcrumbs.css +54 -61
  116. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
  117. package/src/bulkActionPopup/css/bulkActionPopup.css +27 -42
  118. package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  119. package/src/calculator/css/calculator.css +91 -112
  120. package/src/calculator/css/calculator.css.map +1 -1
  121. package/src/calculator/scss/calculator.scss +1 -1
  122. package/src/class/css/selector.css +83 -97
  123. package/src/class/css/selector.css.map +1 -1
  124. package/src/component/css/components.css +351 -406
  125. package/src/component/css/components.css.map +1 -1
  126. package/src/component/css/windowComponent.css +19 -28
  127. package/src/component/css/windowComponent.css.map +1 -1
  128. package/src/contextualPopup/css/contextualPopup.css +42 -55
  129. package/src/contextualPopup/css/contextualPopup.css.map +1 -1
  130. package/src/css/basic.css +4000 -4374
  131. package/src/css/basic.css.map +1 -1
  132. package/src/dashboard/css/dashboard.css +43 -57
  133. package/src/dashboard/css/dashboard.css.map +1 -1
  134. package/src/datalist/css/datalist.css +63 -88
  135. package/src/datalist/css/datalist.css.map +1 -1
  136. package/src/datatable/css/datatable.css +84 -113
  137. package/src/datatable/css/datatable.css.map +1 -1
  138. package/src/dateRange/css/dateRange.css +1 -2
  139. package/src/dateRange/css/dateRange.css.map +1 -1
  140. package/src/datetime/css/picker.css +71 -103
  141. package/src/datetime/css/picker.css.map +1 -1
  142. package/src/destination/css/selector.css +17 -24
  143. package/src/destination/css/selector.css.map +1 -1
  144. package/src/documentViewer/css/documentViewer.css +137 -162
  145. package/src/documentViewer/css/documentViewer.css.map +1 -1
  146. package/src/dropdown/css/dropdown.css +55 -72
  147. package/src/dropdown/css/dropdown.css.map +1 -1
  148. package/src/dynamicComponent/css/dynamicComponent.css +78 -91
  149. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
  150. package/src/form/css/dropdownForm.css +36 -45
  151. package/src/form/css/dropdownForm.css.map +1 -1
  152. package/src/form/css/form.css +12 -16
  153. package/src/form/css/form.css.map +1 -1
  154. package/src/form/validator/css/validator.css +5 -7
  155. package/src/form/validator/css/validator.css.map +1 -1
  156. package/src/form/widget/css/widget.css +26 -34
  157. package/src/form/widget/css/widget.css.map +1 -1
  158. package/src/generis/form/css/form.css +14 -18
  159. package/src/generis/form/css/form.css.map +1 -1
  160. package/src/generis/validator/css/validator.css +5 -7
  161. package/src/generis/validator/css/validator.css.map +1 -1
  162. package/src/generis/widget/css/widget.css +29 -38
  163. package/src/generis/widget/css/widget.css.map +1 -1
  164. package/src/itemButtonList/css/item-button-list.css +135 -172
  165. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  166. package/src/listbox/css/listbox.css +64 -84
  167. package/src/listbox/css/listbox.css.map +1 -1
  168. package/src/listbox/scss/listbox.scss +8 -8
  169. package/src/loadingButton/css/button.css +20 -29
  170. package/src/loadingButton/css/button.css.map +1 -1
  171. package/src/maths/calculator/basicCalculator.js +1 -4
  172. package/src/maths/calculator/calculatorComponent.js +49 -60
  173. package/src/maths/calculator/core/board.js +372 -493
  174. package/src/maths/calculator/core/labels.js +46 -48
  175. package/src/maths/calculator/core/plugin.js +3 -5
  176. package/src/maths/calculator/core/tpl/terms.tpl +7 -1
  177. package/src/maths/calculator/css/calculator.css +224 -270
  178. package/src/maths/calculator/css/calculator.css.map +1 -1
  179. package/src/maths/calculator/defaultCalculator.js +7 -9
  180. package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +3 -3
  181. package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +17 -20
  182. package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +102 -108
  183. package/src/maths/calculator/scientificCalculator.js +2 -10
  184. package/src/maths/calculator/scss/calculator.scss +20 -7
  185. package/src/maths/calculator/tpl/basicKeyboard.tpl +3 -3
  186. package/src/maths/calculator/tpl/scientificKeyboard.tpl +4 -4
  187. package/src/mediaplayer/css/player.css +281 -370
  188. package/src/mediaplayer/css/player.css.map +1 -1
  189. package/src/pagination/css/pagination.css +38 -49
  190. package/src/pagination/css/pagination.css.map +1 -1
  191. package/src/propertySelector/css/propertySelector.css +34 -44
  192. package/src/propertySelector/css/propertySelector.css.map +1 -1
  193. package/src/resource/css/selector.css +400 -490
  194. package/src/resource/css/selector.css.map +1 -1
  195. package/src/resourcemgr/css/resourcemgr.css +192 -237
  196. package/src/resourcemgr/css/resourcemgr.css.map +1 -1
  197. package/src/searchModal/css/advancedSearch.css +92 -121
  198. package/src/searchModal/css/advancedSearch.css.map +1 -1
  199. package/src/searchModal/css/searchModal.css +261 -333
  200. package/src/searchModal/css/searchModal.css.map +1 -1
  201. package/src/searchModal/scss/searchModal.scss +1 -1
  202. package/src/switch/css/switch.css +36 -47
  203. package/src/switch/css/switch.css.map +1 -1
  204. package/src/tabs/css/tabs.css +32 -40
  205. package/src/tabs/css/tabs.css.map +1 -1
  206. package/src/taskQueue/css/taskQueue.css +17 -27
  207. package/src/taskQueue/css/taskQueue.css.map +1 -1
  208. package/src/taskQueueButton/css/taskable.css +1 -2
  209. package/src/taskQueueButton/css/taskable.css.map +1 -1
  210. package/src/taskQueueButton/css/treeButton.css +20 -26
  211. package/src/taskQueueButton/css/treeButton.css.map +1 -1
  212. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +3 -5
  213. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  214. package/src/waitingDialog/css/waitingDialog.css +18 -23
  215. package/src/waitingDialog/css/waitingDialog.css.map +1 -1
  216. package/dist/maths/calculator/core/areaBroker.js +0 -43
  217. package/dist/maths/calculator/core/expression.js +0 -463
  218. package/dist/maths/calculator/core/terms.js +0 -456
  219. package/dist/maths/calculator/core/tokenizer.js +0 -229
  220. package/dist/maths/calculator/core/tokens.js +0 -167
  221. package/dist/maths/calculator/plugins/core/degrad.js +0 -71
  222. package/dist/maths/calculator/plugins/core/history.js +0 -149
  223. package/dist/maths/calculator/plugins/core/remind.js +0 -76
  224. package/dist/maths/calculator/plugins/core/stepNavigation.js +0 -148
  225. package/dist/maths/calculator/plugins/modifiers/pow10.js +0 -136
  226. package/dist/maths/calculator/plugins/modifiers/sign.js +0 -314
  227. package/dist/maths/calculator/pluginsLoader.js +0 -47
  228. package/src/maths/calculator/core/areaBroker.js +0 -38
  229. package/src/maths/calculator/core/expression.js +0 -430
  230. package/src/maths/calculator/core/terms.js +0 -459
  231. package/src/maths/calculator/core/tokenizer.js +0 -245
  232. package/src/maths/calculator/core/tokens.js +0 -178
  233. package/src/maths/calculator/plugins/core/degrad.js +0 -90
  234. package/src/maths/calculator/plugins/core/history.js +0 -166
  235. package/src/maths/calculator/plugins/core/remind.js +0 -96
  236. package/src/maths/calculator/plugins/core/stepNavigation.js +0 -175
  237. package/src/maths/calculator/plugins/modifiers/pow10.js +0 -143
  238. package/src/maths/calculator/plugins/modifiers/sign.js +0 -339
  239. package/src/maths/calculator/pluginsLoader.js +0 -46
@@ -1 +1 @@
1
- {"version":3,"sources":["../scss/calculator.scss","../../../../scss/inc/_functions.scss","../../../../scss/inc/fonts/_tao-icon-vars.scss","../../../../scss/inc/_colors.scss"],"names":[],"mappings":"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","file":"calculator.css","sourcesContent":["/* Style for the calculator component */\n@import 'inc/bootstrap';\n\n/* font size mixin specific to calculator to use em instead of rem unit */\n@function calc-em-size($em) {\n @return ($em) * 1em;\n}\n@mixin calc-font-size($em) {\n font-size: calc-em-size($em) !important;\n}\n\n.calculator {\n $calculatorPanelBg: $uiClickableDefaultBg;\n $calculatorPanelTxt: $textColor;\n $calculatorKeyboardBg: $uiClickableDefaultBg;\n $calculatorKeyboardHoverBg: $uiClickableActiveBg;\n $calculatorKeyboardSpecialBg: $uiClickableHoverBg;\n $calculatorKeyboardSpecialTxt: $textHighlight;\n $calculatorKeyboardCommandTxt: $info;\n $calculatorKeyboardSwitchBg: $uiClickableDefaultBg;\n $calculatorKeyboardSwitchTxt: $textColor;\n $calculatorKeyboardSwitchSelectedBg: $uiClickableHoverBg;\n $calculatorKeyboardSwitchSelectedTxt: $textHighlight;\n $calculatorKeyboardSwitchBorder: whiten($textColor, 0.5);\n $calculatorKeyboardTxt: $textColor;\n $calculatorScreenBg: $uiGeneralContentBg;\n $calculatorScreenTxt: $textColor;\n $calculatorScreenBorder: $info;\n $calculatorScreenSpecialTxt: $uiClickableHoverBg;\n $calculatorScreenSpecialBg: whiten($uiClickableHoverBg, 0.9);\n $calculatorHistoryBorder: $uiGeneralContentBorder;\n $calculatorHistoryTxt: whiten($textColor, 0.2);\n\n $calculatorFontSizeBtnPrimary: 1.7;\n $calculatorFontSizeBtnSecondary: 1.3;\n $calculatorFontSizeBtnSwitch: 1;\n $calculatorFontSizeBtnSvg: 1;\n $calculatorFontSizeExpression: 1.3;\n $calculatorFontSizeHistory: 1;\n $calculatorLineHeightExpression: calc-em-size($calculatorFontSizeExpression + 0.3);\n $calculatorLineHeightHistory: calc-em-size($calculatorFontSizeHistory + 0.3);\n $calculatorTermSpace: calc-em-size(0.2);\n $calculatorButtonSize: calc-em-size(3.2);\n $calculatorSwitchSize: calc-em-size(3.2);\n $calculatorButtonPadding: 2px;\n $calculatorSwitchPadding: 4px;\n $calculatorScreenPadding: 8px;\n $calculatorBaseFontSize: 12px;\n\n position: relative;\n font-family: monospace, sans-serif;\n font-size: $calculatorBaseFontSize;\n width: 100%;\n height: 100%;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n\n sup,\n sub {\n font-size: 0.75em;\n }\n sup {\n top: -0.5em;\n }\n sub {\n bottom: -0.5em;\n }\n\n .screen,\n .input {\n position: relative;\n @include vendor-prefix(flex, 0 0 auto, property, (-ms-, -webkit-, ''));\n }\n\n .focus {\n outline: 2px solid $calculatorScreenBorder;\n }\n\n .keyboard {\n padding: 0 20px 20px;\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n\n .calculator-keyboard {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n background: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt;\n width: 100%;\n height: auto;\n padding-top: $calculatorScreenPadding;\n\n .row {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, row, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: 100%;\n height: 100%;\n }\n\n .spacer {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n }\n\n span {\n position: relative;\n display: inline-block;\n z-index: 1;\n @include calc-font-size($calculatorFontSizeBtnSecondary);\n }\n\n button {\n position: relative;\n background-color: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt !important;\n display: inline-block;\n border-radius: 0;\n border: none;\n padding: 0;\n text-align: center;\n text-shadow: none;\n cursor: pointer;\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n\n @include calc-font-size(1);\n\n &:not(.switch) {\n &:before {\n content: ' ';\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{$calculatorButtonSize / 2} + #{$calculatorButtonPadding});\n left: calc(50% - #{$calculatorButtonSize / 2} + #{$calculatorButtonPadding});\n width: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n height: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n }\n }\n &:hover {\n &:before {\n background: $calculatorKeyboardHoverBg;\n }\n }\n\n &.disabled {\n visibility: hidden;\n }\n &.switch {\n span {\n color: $calculatorKeyboardSwitchTxt !important;\n border-color: $calculatorKeyboardSwitchBorder !important;\n border-top: 1px solid;\n border-bottom: 1px solid;\n height: auto;\n width: 100%;\n padding: $calculatorSwitchPadding 0.5em;\n @include calc-font-size($calculatorFontSizeBtnSwitch);\n }\n\n &.first {\n span {\n border-left: 1px solid;\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n }\n }\n &.last {\n span {\n border-right: 1px solid;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n }\n\n &:before {\n content: ' ';\n border-radius: 2px;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{$calculatorFontSizeBtnSwitch / 2}em - #{$calculatorSwitchPadding});\n bottom: calc(50% - #{$calculatorFontSizeBtnSwitch / 2}em - #{$calculatorSwitchPadding});\n left: 3px;\n right: 3px;\n }\n }\n &.operand {\n span {\n font-weight: bold;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n &.command {\n span {\n color: $calculatorKeyboardCommandTxt !important;\n }\n }\n &.execute {\n &:before {\n background: $calculatorKeyboardSpecialBg;\n }\n\n span {\n font-weight: bold;\n color: $calculatorKeyboardSpecialTxt !important;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n\n svg {\n display: inline-block;\n width: calc-em-size($calculatorFontSizeBtnSvg);\n height: calc-em-size($calculatorFontSizeBtnSvg);\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n\n &.backspace-outline {\n width: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n height: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n }\n }\n }\n }\n\n &.degree {\n .calculator-keyboard {\n button.switch[data-command='degree'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n &.radian {\n .calculator-keyboard {\n button.switch[data-command='radian'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n\n .simple-screen {\n position: relative;\n width: 100%;\n @include calc-font-size($calculatorFontSizeExpression);\n color: $calculatorScreenTxt;\n font-family: monospace;\n\n .screen-panel {\n position: relative;\n width: 100%;\n overflow: auto;\n word-break: break-all;\n text-align: left;\n padding: $calculatorScreenPadding 8px;\n }\n\n .history {\n @include calc-font-size($calculatorFontSizeHistory);\n border: 1px solid $calculatorHistoryBorder;\n color: $calculatorHistoryTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightHistory * 3});\n line-height: $calculatorLineHeightHistory;\n\n .history-line {\n .history-expression {\n &,\n .term {\n font-weight: lighter;\n }\n text-align: left;\n }\n .history-result {\n &:before {\n content: '=';\n display: inline-block;\n font-weight: lighter;\n padding-right: $calculatorTermSpace;\n }\n text-align: right;\n font-weight: bolder;\n }\n }\n }\n .expression {\n @include calc-font-size($calculatorFontSizeExpression);\n background: $calculatorScreenBg;\n color: $calculatorScreenTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightExpression * 2});\n line-height: $calculatorLineHeightExpression;\n }\n .term {\n padding: 0;\n\n &.term-operator:not([data-token='POW']):not([data-token='FAC']):not([data-token='NEG']) {\n padding: 0 $calculatorTermSpace;\n }\n &.term-operator[data-token='FAC'],\n &.term-operator[data-token='NEG'] {\n margin-left: -$calculatorTermSpace / 2;\n margin-right: -$calculatorTermSpace / 2;\n }\n &.term-operator[data-token='POS'] {\n display: none;\n }\n &.term-function:not([data-token='SQRT']):not([data-token='CBRT']) {\n padding-right: $calculatorTermSpace;\n }\n &.term-operand {\n font-weight: bold;\n }\n &.term-modificator {\n font-weight: lighter;\n }\n &.term-constant {\n font-style: italic;\n font-weight: bold;\n }\n &.term-variable {\n font-weight: bold;\n color: $calculatorScreenSpecialTxt;\n }\n &.term-variable[data-token='ANS'] {\n background: $calculatorScreenSpecialBg;\n padding: 0;\n margin: 0 #{$calculatorTermSpace * 2};\n position: relative;\n &::before,\n &::after {\n background: $calculatorScreenSpecialBg;\n content: '';\n border-radius: 50%;\n border: 2px none;\n position: absolute;\n z-index: 0;\n top: 0;\n bottom: 0;\n width: #{$calculatorTermSpace * 2};\n }\n &::before {\n border-left-style: solid;\n border-left-color: $calculatorScreenSpecialTxt;\n left: #{-$calculatorTermSpace};\n }\n &::after {\n border-right-style: solid;\n border-right-color: $calculatorScreenSpecialTxt;\n right: #{-$calculatorTermSpace};\n }\n * {\n position: relative;\n z-index: 1;\n }\n }\n &.term-unknown {\n color: $warning;\n text-decoration: underline wavy $error;\n }\n &.term-elide {\n display: none;\n }\n &.term-error {\n color: $error;\n }\n &.term-syntaxError {\n color: $error;\n text-decoration: underline wavy $error;\n }\n }\n }\n\n &.error .screen .expression {\n background: $errorBgColor;\n }\n}\n\n/*# sourceMappingURL=calculator.css.map */","@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: 100 / ($count - 1);\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient( #{$css} );\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: (($gridPx - ($numCols * $gutter)) / $numCols);\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-left: $marginPercent;\n width: $spanPercent;\n}\n\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n }\n @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n }\n @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n }\n @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return ($colWidth * 100 / $context) * 1%\n}\n\n@function remDist($fontSizePx) {\n @return ($fontSizePx / 10) * 1rem\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha))\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha))\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: ($remPx) * 1px !important;\n font-size: ($remPx / 10) * 1rem !important;\n }\n @else {\n font-size: ($remPx) * 1px;\n font-size: ($remPx / 10) * 1rem;\n }\n}\n\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} { @content };\n @-moz-keyframes #{$name} { @content };\n @-webkit-keyframes #{$name} { @content };\n @keyframes #{$name} { @content };\n}\n\n\n@mixin animation($value, $type:'') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s){\n\n @include keyframes(fade) {\n 0% {opacity:0;}\n 50% {opacity:1;}\n 100% {opacity:0;}\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat(){\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-copy { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}
1
+ {"version":3,"sources":["../scss/calculator.scss%23sass","../../../../scss/inc/_functions.scss","../../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/calculator.scss","../../../../scss/inc/_colors.scss"],"names":[],"mappings":"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","file":"calculator.css","sourcesContent":["/* Style for the calculator component */\n@import 'inc/bootstrap';\n\n/* font size mixin specific to calculator to use em instead of rem unit */\n@function calc-em-size($em) {\n @return ($em) * 1em;\n}\n@mixin calc-font-size($em) {\n font-size: calc-em-size($em) !important;\n}\n\n.calculator {\n $calculatorPanelBg: $uiClickableDefaultBg;\n $calculatorPanelTxt: $textColor;\n $calculatorKeyboardBg: $uiClickableDefaultBg;\n $calculatorKeyboardHoverBg: $uiClickableActiveBg;\n $calculatorKeyboardSpecialBg: $uiClickableHoverBg;\n $calculatorKeyboardSpecialTxt: $textHighlight;\n $calculatorKeyboardCommandTxt: $info;\n $calculatorKeyboardSwitchBg: $uiClickableDefaultBg;\n $calculatorKeyboardSwitchTxt: $textColor;\n $calculatorKeyboardSwitchSelectedBg: $uiClickableHoverBg;\n $calculatorKeyboardSwitchSelectedTxt: $textHighlight;\n $calculatorKeyboardSwitchBorder: whiten($textColor, 0.5);\n $calculatorKeyboardTxt: $textColor;\n $calculatorScreenBg: $uiGeneralContentBg;\n $calculatorScreenTxt: $textColor;\n $calculatorScreenBorder: $info;\n $calculatorScreenSpecialTxt: $uiClickableHoverBg;\n $calculatorScreenSpecialBg: whiten($uiClickableHoverBg, 0.9);\n $calculatorHistoryBorder: $uiGeneralContentBorder;\n $calculatorHistoryTxt: whiten($textColor, 0.2);\n\n $calculatorFontSizeBtnPrimary: 1.7;\n $calculatorFontSizeBtnSecondary: 1.3;\n $calculatorFontSizeBtnSwitch: 1;\n $calculatorFontSizeBtnSvg: 1;\n $calculatorFontSizeExpression: 1.3;\n $calculatorFontSizeHistory: 1;\n $calculatorLineHeightExpression: calc-em-size($calculatorFontSizeExpression + 0.3);\n $calculatorLineHeightHistory: calc-em-size($calculatorFontSizeHistory + 0.3);\n $calculatorTermSpace: calc-em-size(0.2);\n $calculatorButtonSize: calc-em-size(3.2);\n $calculatorSwitchSize: calc-em-size(3.2);\n $calculatorButtonPadding: 2px;\n $calculatorSwitchPadding: 4px;\n $calculatorScreenPadding: 8px;\n $calculatorBaseFontSize: 12px;\n\n position: relative;\n font-family: monospace, sans-serif;\n font-size: $calculatorBaseFontSize;\n width: 100%;\n height: 100%;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n\n sup,\n sub {\n font-size: 0.75em;\n }\n sup {\n top: -0.5em;\n }\n sub {\n bottom: -0.5em;\n }\n\n [data-type='exponent'] {\n vertical-align: super;\n font-size: 0.75em;\n }\n\n [data-type='variable'] {\n font-weight: bold;\n }\n\n [data-type='function']:not([data-value*='rt']) {\n padding-right: 0.3em;\n }\n\n .screen,\n .input {\n position: relative;\n @include vendor-prefix(flex, 0 0 auto, property, (-ms-, -webkit-, ''));\n }\n\n .focus {\n outline: 2px solid $calculatorScreenBorder;\n }\n\n .keyboard {\n padding: 0 20px 20px;\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n\n .calculator-keyboard {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n background: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt;\n width: 100%;\n height: auto;\n padding-top: $calculatorScreenPadding;\n\n .row {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, row, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: 100%;\n height: 100%;\n }\n\n .spacer {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n }\n\n span {\n position: relative;\n display: inline-block;\n z-index: 1;\n @include calc-font-size($calculatorFontSizeBtnSecondary);\n }\n\n button {\n position: relative;\n background-color: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt !important;\n display: inline-block;\n border-radius: 0;\n border: none;\n padding: 0;\n text-align: center;\n text-shadow: none;\n cursor: pointer;\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n\n @include calc-font-size(1);\n\n &:not(.switch) {\n &:before {\n content: ' ';\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{calc($calculatorButtonSize / 2)} + #{$calculatorButtonPadding});\n left: calc(50% - #{calc($calculatorButtonSize / 2)} + #{$calculatorButtonPadding});\n width: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n height: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n }\n }\n &:hover {\n &:before {\n background: $calculatorKeyboardHoverBg;\n }\n }\n\n &.disabled {\n visibility: hidden;\n }\n &.switch {\n span {\n color: $calculatorKeyboardSwitchTxt !important;\n border-color: $calculatorKeyboardSwitchBorder !important;\n border-top: 1px solid;\n border-bottom: 1px solid;\n height: auto;\n width: 100%;\n padding: $calculatorSwitchPadding 0.5em;\n @include calc-font-size($calculatorFontSizeBtnSwitch);\n }\n\n &.first {\n span {\n border-left: 1px solid;\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n }\n }\n &.last {\n span {\n border-right: 1px solid;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n }\n\n &:before {\n content: ' ';\n border-radius: 2px;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{calc($calculatorFontSizeBtnSwitch / 2)}em - #{$calculatorSwitchPadding});\n bottom: calc(50% - #{calc($calculatorFontSizeBtnSwitch / 2)}em - #{$calculatorSwitchPadding});\n left: 3px;\n right: 3px;\n }\n }\n &.operand {\n span {\n font-weight: bold;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n &.command {\n span {\n color: $calculatorKeyboardCommandTxt !important;\n }\n }\n &.execute {\n &:before {\n background: $calculatorKeyboardSpecialBg;\n }\n\n span {\n font-weight: bold;\n color: $calculatorKeyboardSpecialTxt !important;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n\n svg {\n display: inline-block;\n width: calc-em-size($calculatorFontSizeBtnSvg);\n height: calc-em-size($calculatorFontSizeBtnSvg);\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n\n &.backspace-outline {\n width: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n height: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n }\n }\n }\n }\n\n &.degree {\n .calculator-keyboard {\n button.switch[data-command='degree'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n &.radian {\n .calculator-keyboard {\n button.switch[data-command='radian'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n\n .simple-screen {\n position: relative;\n width: 100%;\n @include calc-font-size($calculatorFontSizeExpression);\n color: $calculatorScreenTxt;\n font-family: monospace;\n\n .screen-panel {\n position: relative;\n width: 100%;\n overflow: auto;\n word-break: break-all;\n text-align: left;\n padding: $calculatorScreenPadding 8px;\n }\n\n .history {\n @include calc-font-size($calculatorFontSizeHistory);\n border: 1px solid $calculatorHistoryBorder;\n color: $calculatorHistoryTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightHistory * 3});\n line-height: $calculatorLineHeightHistory;\n\n .history-line {\n .history-expression {\n &,\n .term {\n font-weight: lighter;\n }\n text-align: left;\n }\n .history-result {\n &:before {\n content: '=';\n display: inline-block;\n font-weight: lighter;\n padding-right: $calculatorTermSpace;\n }\n text-align: right;\n font-weight: bolder;\n }\n }\n }\n .expression {\n @include calc-font-size($calculatorFontSizeExpression);\n background: $calculatorScreenBg;\n color: $calculatorScreenTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightExpression * 2});\n line-height: $calculatorLineHeightExpression;\n }\n .term {\n padding: 0;\n\n &.term-operator:not([data-token='POW']):not([data-token='FAC']):not([data-token='NEG']) {\n padding: 0 $calculatorTermSpace;\n }\n &.term-operator[data-token='FAC'],\n &.term-operator[data-token='NEG'] {\n margin-left: calc(-1 * $calculatorTermSpace / 2);\n margin-right: calc(-1 * $calculatorTermSpace / 2);\n }\n &.term-operator[data-token='POS'] {\n display: none;\n }\n &.term-function:not([data-token='SQRT']):not([data-token='CBRT']) {\n padding-right: $calculatorTermSpace;\n }\n &.term-operand {\n font-weight: bold;\n }\n &.term-modificator {\n font-weight: lighter;\n }\n &.term-constant {\n font-style: italic;\n font-weight: bold;\n }\n &.term-variable {\n font-weight: bold;\n color: $calculatorScreenSpecialTxt;\n }\n &.term-variable[data-token='VAR_ANS'] {\n background: $calculatorScreenSpecialBg;\n padding: 0;\n margin: 0 #{$calculatorTermSpace * 2};\n position: relative;\n &::before,\n &::after {\n background: $calculatorScreenSpecialBg;\n content: '';\n border-radius: 50%;\n border: 2px none;\n position: absolute;\n z-index: 0;\n top: 0;\n bottom: 0;\n width: #{$calculatorTermSpace * 2};\n }\n &::before {\n border-left-style: solid;\n border-left-color: $calculatorScreenSpecialTxt;\n left: #{-$calculatorTermSpace};\n }\n &::after {\n border-right-style: solid;\n border-right-color: $calculatorScreenSpecialTxt;\n right: #{-$calculatorTermSpace};\n }\n * {\n position: relative;\n z-index: 1;\n }\n }\n &.term-unknown {\n color: $warning;\n text-decoration: underline wavy $error;\n }\n &.term-elide {\n display: none;\n }\n &.term-error {\n color: $error;\n }\n &.term-syntaxError {\n color: $error;\n text-decoration: underline wavy $error;\n }\n }\n }\n\n &.error .screen .expression {\n background: $errorBgColor;\n }\n}\n","@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: calc(100 / ($count - 1));\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient( #{$css} );\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-left: $marginPercent;\n width: $spanPercent;\n}\n\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n }\n @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n }\n @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n }\n @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return calc(($colWidth * 100 / $context) * 1%)\n}\n\n@function remDist($fontSizePx) {\n @return calc(($fontSizePx / 10) * 1rem)\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha))\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha))\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n }\n @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} { @content };\n @-moz-keyframes #{$name} { @content };\n @-webkit-keyframes #{$name} { @content };\n @keyframes #{$name} { @content };\n}\n\n\n@mixin animation($value, $type:'') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s){\n\n @include keyframes(fade) {\n 0% {opacity:0;}\n 50% {opacity:1;}\n 100% {opacity:0;}\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat(){\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-copy { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","/* Style for the calculator component */\n@import 'inc/bootstrap';\n\n/* font size mixin specific to calculator to use em instead of rem unit */\n@function calc-em-size($em) {\n @return ($em) * 1em;\n}\n@mixin calc-font-size($em) {\n font-size: calc-em-size($em) !important;\n}\n\n.calculator {\n $calculatorPanelBg: $uiClickableDefaultBg;\n $calculatorPanelTxt: $textColor;\n $calculatorKeyboardBg: $uiClickableDefaultBg;\n $calculatorKeyboardHoverBg: $uiClickableActiveBg;\n $calculatorKeyboardSpecialBg: $uiClickableHoverBg;\n $calculatorKeyboardSpecialTxt: $textHighlight;\n $calculatorKeyboardCommandTxt: $info;\n $calculatorKeyboardSwitchBg: $uiClickableDefaultBg;\n $calculatorKeyboardSwitchTxt: $textColor;\n $calculatorKeyboardSwitchSelectedBg: $uiClickableHoverBg;\n $calculatorKeyboardSwitchSelectedTxt: $textHighlight;\n $calculatorKeyboardSwitchBorder: whiten($textColor, 0.5);\n $calculatorKeyboardTxt: $textColor;\n $calculatorScreenBg: $uiGeneralContentBg;\n $calculatorScreenTxt: $textColor;\n $calculatorScreenBorder: $info;\n $calculatorScreenSpecialTxt: $uiClickableHoverBg;\n $calculatorScreenSpecialBg: whiten($uiClickableHoverBg, 0.9);\n $calculatorHistoryBorder: $uiGeneralContentBorder;\n $calculatorHistoryTxt: whiten($textColor, 0.2);\n\n $calculatorFontSizeBtnPrimary: 1.7;\n $calculatorFontSizeBtnSecondary: 1.3;\n $calculatorFontSizeBtnSwitch: 1;\n $calculatorFontSizeBtnSvg: 1;\n $calculatorFontSizeExpression: 1.3;\n $calculatorFontSizeHistory: 1;\n $calculatorLineHeightExpression: calc-em-size($calculatorFontSizeExpression + 0.3);\n $calculatorLineHeightHistory: calc-em-size($calculatorFontSizeHistory + 0.3);\n $calculatorTermSpace: calc-em-size(0.2);\n $calculatorButtonSize: calc-em-size(3.2);\n $calculatorSwitchSize: calc-em-size(3.2);\n $calculatorButtonPadding: 2px;\n $calculatorSwitchPadding: 4px;\n $calculatorScreenPadding: 8px;\n $calculatorBaseFontSize: 12px;\n\n position: relative;\n font-family: monospace, sans-serif;\n font-size: $calculatorBaseFontSize;\n width: 100%;\n height: 100%;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n\n sup,\n sub {\n font-size: 0.75em;\n }\n sup {\n top: -0.5em;\n }\n sub {\n bottom: -0.5em;\n }\n\n [data-type='exponent'] {\n vertical-align: super;\n font-size: 0.75em;\n }\n\n [data-type='variable'] {\n font-weight: bold;\n }\n\n [data-type='function']:not([data-value*='rt']) {\n padding-right: 0.3em;\n }\n\n .screen,\n .input {\n position: relative;\n @include vendor-prefix(flex, 0 0 auto, property, (-ms-, -webkit-, ''));\n }\n\n .focus {\n outline: 2px solid $calculatorScreenBorder;\n }\n\n .keyboard {\n padding: 0 20px 20px;\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n\n .calculator-keyboard {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, column, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n background: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt;\n width: 100%;\n height: auto;\n padding-top: $calculatorScreenPadding;\n\n .row {\n position: relative;\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-direction, row, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(align-content, stretch, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: 100%;\n height: 100%;\n }\n\n .spacer {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n }\n\n span {\n position: relative;\n display: inline-block;\n z-index: 1;\n @include calc-font-size($calculatorFontSizeBtnSecondary);\n }\n\n button {\n position: relative;\n background-color: $calculatorKeyboardBg;\n color: $calculatorKeyboardTxt !important;\n display: inline-block;\n border-radius: 0;\n border: none;\n padding: 0;\n text-align: center;\n text-shadow: none;\n cursor: pointer;\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n width: $calculatorButtonSize;\n height: 100%;\n\n @include calc-font-size(1);\n\n &:not(.switch) {\n &:before {\n content: ' ';\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{calc($calculatorButtonSize / 2)} + #{$calculatorButtonPadding});\n left: calc(50% - #{calc($calculatorButtonSize / 2)} + #{$calculatorButtonPadding});\n width: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n height: calc(#{$calculatorButtonSize} - #{$calculatorButtonPadding * 2});\n }\n }\n &:hover {\n &:before {\n background: $calculatorKeyboardHoverBg;\n }\n }\n\n &.disabled {\n visibility: hidden;\n }\n &.switch {\n span {\n color: $calculatorKeyboardSwitchTxt !important;\n border-color: $calculatorKeyboardSwitchBorder !important;\n border-top: 1px solid;\n border-bottom: 1px solid;\n height: auto;\n width: 100%;\n padding: $calculatorSwitchPadding 0.5em;\n @include calc-font-size($calculatorFontSizeBtnSwitch);\n }\n\n &.first {\n span {\n border-left: 1px solid;\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n }\n }\n &.last {\n span {\n border-right: 1px solid;\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n }\n\n &:before {\n content: ' ';\n border-radius: 2px;\n display: inline-block;\n position: absolute;\n z-index: 0;\n top: calc(50% - #{calc($calculatorFontSizeBtnSwitch / 2)}em - #{$calculatorSwitchPadding});\n bottom: calc(50% - #{calc($calculatorFontSizeBtnSwitch / 2)}em - #{$calculatorSwitchPadding});\n left: 3px;\n right: 3px;\n }\n }\n &.operand {\n span {\n font-weight: bold;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n &.command {\n span {\n color: $calculatorKeyboardCommandTxt !important;\n }\n }\n &.execute {\n &:before {\n background: $calculatorKeyboardSpecialBg;\n }\n\n span {\n font-weight: bold;\n color: $calculatorKeyboardSpecialTxt !important;\n @include calc-font-size($calculatorFontSizeBtnPrimary);\n }\n }\n\n svg {\n display: inline-block;\n width: calc-em-size($calculatorFontSizeBtnSvg);\n height: calc-em-size($calculatorFontSizeBtnSvg);\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n\n &.backspace-outline {\n width: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n height: calc-em-size($calculatorFontSizeBtnSvg * 1.2);\n }\n }\n }\n }\n\n &.degree {\n .calculator-keyboard {\n button.switch[data-command='degree'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n &.radian {\n .calculator-keyboard {\n button.switch[data-command='radian'] {\n &:before {\n background: $calculatorKeyboardSwitchSelectedBg;\n }\n span {\n color: $calculatorKeyboardSwitchSelectedTxt !important;\n }\n }\n }\n }\n\n .simple-screen {\n position: relative;\n width: 100%;\n @include calc-font-size($calculatorFontSizeExpression);\n color: $calculatorScreenTxt;\n font-family: monospace;\n\n .screen-panel {\n position: relative;\n width: 100%;\n overflow: auto;\n word-break: break-all;\n text-align: left;\n padding: $calculatorScreenPadding 8px;\n }\n\n .history {\n @include calc-font-size($calculatorFontSizeHistory);\n border: 1px solid $calculatorHistoryBorder;\n color: $calculatorHistoryTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightHistory * 3});\n line-height: $calculatorLineHeightHistory;\n\n .history-line {\n .history-expression {\n &,\n .term {\n font-weight: lighter;\n }\n text-align: left;\n }\n .history-result {\n &:before {\n content: '=';\n display: inline-block;\n font-weight: lighter;\n padding-right: $calculatorTermSpace;\n }\n text-align: right;\n font-weight: bolder;\n }\n }\n }\n .expression {\n @include calc-font-size($calculatorFontSizeExpression);\n background: $calculatorScreenBg;\n color: $calculatorScreenTxt;\n height: calc(#{$calculatorScreenPadding * 2} + #{$calculatorLineHeightExpression * 2});\n line-height: $calculatorLineHeightExpression;\n }\n .term {\n padding: 0;\n\n &.term-operator:not([data-token='POW']):not([data-token='FAC']):not([data-token='NEG']) {\n padding: 0 $calculatorTermSpace;\n }\n &.term-operator[data-token='FAC'],\n &.term-operator[data-token='NEG'] {\n margin-left: calc(-1 * $calculatorTermSpace / 2);\n margin-right: calc(-1 * $calculatorTermSpace / 2);\n }\n &.term-operator[data-token='POS'] {\n display: none;\n }\n &.term-function:not([data-token='SQRT']):not([data-token='CBRT']) {\n padding-right: $calculatorTermSpace;\n }\n &.term-operand {\n font-weight: bold;\n }\n &.term-modificator {\n font-weight: lighter;\n }\n &.term-constant {\n font-style: italic;\n font-weight: bold;\n }\n &.term-variable {\n font-weight: bold;\n color: $calculatorScreenSpecialTxt;\n }\n &.term-variable[data-token='VAR_ANS'] {\n background: $calculatorScreenSpecialBg;\n padding: 0;\n margin: 0 #{$calculatorTermSpace * 2};\n position: relative;\n &::before,\n &::after {\n background: $calculatorScreenSpecialBg;\n content: '';\n border-radius: 50%;\n border: 2px none;\n position: absolute;\n z-index: 0;\n top: 0;\n bottom: 0;\n width: #{$calculatorTermSpace * 2};\n }\n &::before {\n border-left-style: solid;\n border-left-color: $calculatorScreenSpecialTxt;\n left: #{-$calculatorTermSpace};\n }\n &::after {\n border-right-style: solid;\n border-right-color: $calculatorScreenSpecialTxt;\n right: #{-$calculatorTermSpace};\n }\n * {\n position: relative;\n z-index: 1;\n }\n }\n &.term-unknown {\n color: $warning;\n text-decoration: underline wavy $error;\n }\n &.term-elide {\n display: none;\n }\n &.term-error {\n color: $error;\n }\n &.term-syntaxError {\n color: $error;\n text-decoration: underline wavy $error;\n }\n }\n }\n\n &.error .screen .expression {\n background: $errorBgColor;\n }\n}\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}
@@ -13,10 +13,7 @@
13
13
  * along with this program; if not, write to the Free Software
14
14
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
15
  *
16
- * Copyright (c) 2018 Open Assessment Technologies SA ;
17
- */
18
- /**
19
- * @author Jean-Sébastien Conan <jean-sebastien@taotesting.com>
16
+ * Copyright (c) 2018-2023 Open Assessment Technologies SA ;
20
17
  */
21
18
  import _ from 'lodash';
22
19
  import calculatorComponent from 'ui/maths/calculator/calculatorComponent';
@@ -32,17 +29,18 @@ import pluginScreenFactory from 'ui/maths/calculator/plugins/screen/simpleScreen
32
29
  * @returns {dynamicComponent}
33
30
  */
34
31
  export default function defaultCalculatorFactory(config) {
35
- var defaultPluginsConfig = {};
32
+ const defaultPluginsConfig = {};
33
+ const { keyboardLayout, screenLayout } = config || {};
36
34
 
37
- if (config && config.keyboardLayout) {
35
+ if (keyboardLayout) {
38
36
  defaultPluginsConfig.templateKeyboard = {
39
- layout: config.keyboardLayout
37
+ layout: keyboardLayout
40
38
  };
41
39
  }
42
40
 
43
- if (config && config.screenLayout) {
41
+ if (screenLayout) {
44
42
  defaultPluginsConfig.simpleScreen = {
45
- layout: config.screenLayout
43
+ layout: screenLayout
46
44
  };
47
45
  }
48
46
 
@@ -4,7 +4,7 @@
4
4
  <button class="key operator" data-command="term" data-param="LPAR"><span>{{{labels.LPAR}}}</span></button>
5
5
  <button class="key operator" data-command="term" data-param="RPAR"><span>{{{labels.RPAR}}}</span></button>
6
6
  <button class="key command" data-command="clear"><span>{{{labels.CLEAR}}}</span></button>
7
- <button class="key command" data-command="clearAll"><span>{{{labels.CLEARALL}}}</span></button>
7
+ <button class="key command" data-command="reset"><span>{{{labels.RESET}}}</span></button>
8
8
  </div>
9
9
  <div class="row">
10
10
  <button class="key operator" data-command="term" data-param="CBRT"><span>{{{labels.CBRT}}}</span></button>
@@ -32,6 +32,6 @@
32
32
  <button class="key operand" data-command="term" data-param="NUM0"><span>{{{labels.NUM0}}}</span></button>
33
33
  <button class="key operand" data-command="term" data-param="DOT"><span>{{{labels.DOT}}}</span></button>
34
34
  <button class="key execute" data-command="execute"><span>{{{labels.EXECUTE}}}</span></button>
35
- <button class="key operator" data-command="term" data-param="ADD"><span>{{{labels.SUB}}}</span></button>
35
+ <button class="key operator" data-command="term" data-param="ADD"><span>{{{labels.ADD}}}</span></button>
36
36
  </div>
37
- </div>
37
+ </div>
@@ -13,25 +13,23 @@
13
13
  * along with this program; if not, write to the Free Software
14
14
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
15
  *
16
- * Copyright (c) 2018 Open Assessment Technologies SA ;
16
+ * Copyright (c) 2018-2023 Open Assessment Technologies SA ;
17
17
  */
18
18
  /**
19
19
  * Plugin that manages a keyboard for the calculator, with configurable layout.
20
20
  * Each key must declare the target command, using DOM attributes:
21
21
  * - data-command: the name of the command to call
22
22
  * - data-param: the optional parameter to apply to the command
23
- * @author Jean-Sébastien Conan <jean-sebastien@taotesting.com>
24
23
  */
25
24
  import $ from 'jquery';
26
- import _ from 'lodash';
27
25
  import nsHelper from 'util/namespace';
28
26
  import pluginFactory from 'ui/maths/calculator/core/plugin';
29
27
  import labels from 'ui/maths/calculator/core/labels';
30
28
  import defaultKeyboardTpl from 'ui/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate';
31
29
 
32
- var pluginName = 'templateKeyboard';
30
+ const pluginName = 'templateKeyboard';
33
31
 
34
- var defaultConfig = {
32
+ const defaultConfig = {
35
33
  layout: defaultKeyboardTpl
36
34
  };
37
35
 
@@ -42,30 +40,30 @@ export default pluginFactory(
42
40
  /**
43
41
  * Called when the plugin should be initialized.
44
42
  */
45
- init: function init() {
43
+ init() {
46
44
  // required by the plugin factory to validate this plugin
47
45
  },
48
46
 
49
47
  /**
50
48
  * Called when the plugin should be rendered.
51
49
  */
52
- render: function render() {
53
- var calculator = this.getCalculator();
54
- var areaBroker = calculator.getAreaBroker();
55
- var pluginConfig = this.getConfig();
56
- var templateConfig = _.merge({ labels: labels }, pluginConfig);
50
+ render() {
51
+ const calculator = this.getCalculator();
52
+ const areaBroker = calculator.getAreaBroker();
53
+ const pluginConfig = this.getConfig();
54
+ const templateConfig = Object.assign({ labels }, pluginConfig);
57
55
 
58
- if (!_.isFunction(pluginConfig.layout)) {
56
+ if ('function' !== typeof pluginConfig.layout) {
59
57
  throw new TypeError('The keyboard plugin requires a template to render!');
60
58
  }
61
59
 
62
60
  this.$layout = $(pluginConfig.layout(templateConfig)).on(
63
61
  nsHelper.namespaceAll('click', pluginName),
64
62
  '.key',
65
- function() {
66
- var $key = $(this).closest('.key');
67
- var command = $key.data('command');
68
- var param = $key.data('param');
63
+ function onClick() {
64
+ const $key = $(this).closest('.key');
65
+ const command = $key.data('command');
66
+ const param = $key.data('param');
69
67
  if (command) {
70
68
  calculator.useCommand(command, param);
71
69
  }
@@ -78,13 +76,12 @@ export default pluginFactory(
78
76
  /**
79
77
  * Called when the plugin is destroyed. Mostly when the host is destroyed itself.
80
78
  */
81
- destroy: function destroy() {
82
- var calculator = this.getCalculator();
79
+ destroy() {
83
80
  if (this.$layout) {
84
- this.$layout.off('.' + pluginName).remove();
81
+ this.$layout.off(`.${pluginName}`).remove();
85
82
  this.$layout = null;
86
83
  }
87
- calculator.off('.' + pluginName);
84
+ this.getCalculator().off(`.${pluginName}`);
88
85
  }
89
86
  },
90
87
  defaultConfig