@intellias/menu 1.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 (174) hide show
  1. package/Menu.ts +625 -0
  2. package/README.md +121 -0
  3. package/assets/icons/arrow-down.svg +13 -0
  4. package/assets/icons/arrow-left.svg +3 -0
  5. package/assets/icons/arrow-submenu.svg +8 -0
  6. package/assets/icons/close.svg +3 -0
  7. package/assets/icons/delete.svg +13 -0
  8. package/assets/icons/faq-new.svg +4 -0
  9. package/assets/icons/kudos.svg +14 -0
  10. package/assets/icons/loading-spinner.svg +40 -0
  11. package/assets/icons/notification.svg +11 -0
  12. package/assets/icons/notifications/assessment.svg +10 -0
  13. package/assets/icons/notifications/buddy_program.svg +8 -0
  14. package/assets/icons/notifications/compensation_packages.svg +10 -0
  15. package/assets/icons/notifications/dsat.svg +8 -0
  16. package/assets/icons/notifications/feedback.svg +7 -0
  17. package/assets/icons/notifications/kudos.svg +4 -0
  18. package/assets/icons/notifications/overtime_requests.svg +15 -0
  19. package/assets/icons/notifications/pdu_program.svg +4 -0
  20. package/assets/icons/notifications/profile_update.svg +6 -0
  21. package/assets/icons/notifications/recommendation_program.svg +7 -0
  22. package/assets/icons/notifications/reminders.svg +4 -0
  23. package/assets/icons/notifications/sick_leaves.svg +5 -0
  24. package/assets/icons/notifications/smarts.svg +4 -0
  25. package/assets/icons/notifications/survey.svg +8 -0
  26. package/assets/icons/notifications/unpaid_leave.svg +4 -0
  27. package/assets/icons/notifications/vacations.svg +4 -0
  28. package/assets/icons/pause.svg +13 -0
  29. package/assets/icons/play.svg +13 -0
  30. package/assets/icons/smart.svg +14 -0
  31. package/assets/icons/smarts-kudos.svg +11 -0
  32. package/assets/icons/spinner-solid.svg +1 -0
  33. package/assets/icons/vacation.svg +14 -0
  34. package/assets/icons/visibility.svg +1 -0
  35. package/assets/intems-logo.svg +3 -0
  36. package/babel.config.js +6 -0
  37. package/buses/eventBus.ts +19 -0
  38. package/buses/events/GiveKudosEvent.ts +7 -0
  39. package/components/buttons/action-button/ActionButton.scss +133 -0
  40. package/components/buttons/action-button/ActionButton.ts +57 -0
  41. package/components/buttons/action-button/ActionButton.vue +50 -0
  42. package/components/buttons/secondary-button/SecondaryButton.scss +48 -0
  43. package/components/buttons/secondary-button/SecondaryButton.ts +28 -0
  44. package/components/buttons/secondary-button/SecondaryButton.vue +27 -0
  45. package/components/confirm/Confirm.scss +44 -0
  46. package/components/confirm/Confirm.ts +82 -0
  47. package/components/confirm/Confirm.vue +64 -0
  48. package/components/give-kudos-form/GiveKudosForm.scss +114 -0
  49. package/components/give-kudos-form/GiveKudosForm.ts +159 -0
  50. package/components/give-kudos-form/GiveKudosForm.vue +131 -0
  51. package/components/give-kudos-form/mixins/UserSelectMixin.ts +57 -0
  52. package/components/give-kudos-form/models/KudosShareModel.ts +6 -0
  53. package/components/give-kudos-form/models/UserListModel.ts +5 -0
  54. package/components/give-kudos-form/validators/InEnglishValidatorRegex.ts +17 -0
  55. package/components/give-kudos-form/validators/KudosBalance.ts +10 -0
  56. package/components/modal/Modal.scss +53 -0
  57. package/components/modal/Modal.ts +70 -0
  58. package/components/modal/Modal.vue +28 -0
  59. package/components/notifications-sidebar/NotificationsSidebar.scss +665 -0
  60. package/components/notifications-sidebar/NotificationsSidebar.ts +203 -0
  61. package/components/notifications-sidebar/NotificationsSidebar.vue +171 -0
  62. package/components/notifications-sidebar/models/BroadcastNotificationPayload.ts +8 -0
  63. package/components/notifications-sidebar/models/TotalCounter.ts +50 -0
  64. package/components/notifications-sidebar/notification/Notification.ts +17 -0
  65. package/components/notifications-sidebar/notification/Notification.vue +87 -0
  66. package/components/play-pause/PlayPause.scss +33 -0
  67. package/components/play-pause/PlayPause.ts +156 -0
  68. package/components/play-pause/PlayPause.vue +36 -0
  69. package/components/play-pause/PlayPauseStatus.ts +4 -0
  70. package/components/play-pause/helpers/LatestTrackedTimeDurationHelper.ts +55 -0
  71. package/components/play-pause/helpers/PauseHelper.ts +55 -0
  72. package/components/play-pause/helpers/TrackedTimeHelper.ts +80 -0
  73. package/components/preloader/Preloader.vue +34 -0
  74. package/components/request-loader/RequestLoader.scss +20 -0
  75. package/components/request-loader/RequestLoader.ts +80 -0
  76. package/components/request-loader/RequestLoader.vue +15 -0
  77. package/components/sub-menu/SubMenu.scss +33 -0
  78. package/components/sub-menu/SubMenu.ts +38 -0
  79. package/components/sub-menu/SubMenu.vue +21 -0
  80. package/components/time-ago/TimeAgo.ts +34 -0
  81. package/components/time-ago/TimeAgo.vue +9 -0
  82. package/components/user-picture/UserPicture.scss +62 -0
  83. package/components/user-picture/UserPicture.ts +105 -0
  84. package/components/user-picture/UserPicture.vue +23 -0
  85. package/components/v-select-intems/VSelectIntems.ts +112 -0
  86. package/components/v-select-intems/VSelectIntems.vue +68 -0
  87. package/components/v-select-intems/open-indicator/OpenIndicator.vue +3 -0
  88. package/dist/css/1.css +85 -0
  89. package/dist/css/2.css +34 -0
  90. package/dist/css/3.css +34 -0
  91. package/dist/css/4.css +34 -0
  92. package/dist/css/5.css +34 -0
  93. package/dist/css/main.css +1564 -0
  94. package/dist/html/app.html +19 -0
  95. package/dist/html/styles.html +1 -0
  96. package/dist/images/intems-logo.svg +3 -0
  97. package/dist/js/0.js +315 -0
  98. package/dist/js/1.js +313 -0
  99. package/dist/js/2.js +217 -0
  100. package/dist/js/3.js +181 -0
  101. package/dist/js/4.js +181 -0
  102. package/dist/js/5.js +181 -0
  103. package/dist/js/6.js +47 -0
  104. package/dist/js/main.js +7465 -0
  105. package/dist/js/vue.js +15 -0
  106. package/helpers/GeneralHelper.ts +61 -0
  107. package/helpers/PublisherSubscriber.ts +34 -0
  108. package/helpers/QueryFilter.ts +204 -0
  109. package/helpers/TimeHelper.ts +54 -0
  110. package/helpers/Validations.ts +7 -0
  111. package/helpers/model/ModelHelper.ts +155 -0
  112. package/helpers/model/decorators/AsCollection.ts +26 -0
  113. package/helpers/model/decorators/AsModel.ts +25 -0
  114. package/helpers/model/decorators/DateTime.ts +26 -0
  115. package/helpers/model/decorators/TimeDuration.ts +33 -0
  116. package/helpers/moment/Duration.ts +64 -0
  117. package/helpers/moment/Moment.ts +17 -0
  118. package/helpers/moment/index.d.ts +20 -0
  119. package/helpers/response/AxiosProxy.ts +72 -0
  120. package/helpers/response/ErrorsToToastHelper.ts +42 -0
  121. package/helpers/response/ResponseCode.ts +16 -0
  122. package/helpers/response/ResponseHelper.ts +42 -0
  123. package/helpers/response/ResponseInterface.ts +34 -0
  124. package/helpers/response/ResponseState.ts +6 -0
  125. package/jsconfig.json +19 -0
  126. package/mixins/IntemsMath.ts +29 -0
  127. package/mixins/notifications/ActionProcessing.ts +134 -0
  128. package/mixins/notifications/confirms/AssetRejectionConfirm.vue +59 -0
  129. package/mixins/notifications/confirms/SickLeaveRejectionConfirm.vue +31 -0
  130. package/mixins/notifications/confirms/UnpaidLeaveRejectionConfirm.vue +31 -0
  131. package/mixins/notifications/confirms/VacationRejectionConfirm.vue +31 -0
  132. package/models/AssetModel.ts +80 -0
  133. package/models/AssetRequestModel.ts +25 -0
  134. package/models/ConfigModel.ts +20 -0
  135. package/models/EmployeeStartEndDateModel.ts +16 -0
  136. package/models/EmploymentTypeModel.ts +95 -0
  137. package/models/LogoutModel.ts +3 -0
  138. package/models/Model.ts +12 -0
  139. package/models/ModuleOptions.ts +24 -0
  140. package/models/PublicInfoModel.ts +38 -0
  141. package/models/PublicLocationModel.ts +36 -0
  142. package/models/StatusModel.ts +8 -0
  143. package/models/TrackedTimeModel.ts +32 -0
  144. package/models/location/PublicLocationModel.ts +36 -0
  145. package/models/timezones/LocalTimezoneHistoryModel.ts +8 -0
  146. package/models/timezones/TimezoneModel.ts +9 -0
  147. package/models/user/ExtendedInfoModel.ts +37 -0
  148. package/models/user/NotificationActionModel.ts +53 -0
  149. package/models/user/NotificationModel.ts +84 -0
  150. package/models/user/PublicInfoModel.ts +38 -0
  151. package/models/user/WelcomeProgram.ts +4 -0
  152. package/package.json +117 -0
  153. package/repositories/BaseRepository.ts +42 -0
  154. package/repositories/BaseUrl.ts +107 -0
  155. package/repositories/Repository.ts +291 -0
  156. package/repositories/ResourceRepository.ts +99 -0
  157. package/repositories/TrackedTimeRepository.ts +43 -0
  158. package/repositories/UserRepository.ts +75 -0
  159. package/repositories/subscribers/CreateSubscribers.ts +28 -0
  160. package/repositories/subscribers/DefaultSubscribers.ts +82 -0
  161. package/repositories/subscribers/DeleteSubscribers.ts +28 -0
  162. package/repositories/subscribers/DownloadSubscribers.ts +28 -0
  163. package/repositories/subscribers/Subscribers.ts +13 -0
  164. package/repositories/subscribers/UpdateSubscribers.ts +32 -0
  165. package/scss/components/_global.scss +66 -0
  166. package/scss/components/_mixins.scss +31 -0
  167. package/scss/components/_tooltip.scss +45 -0
  168. package/scss/components/_utils.scss +26 -0
  169. package/scss/components/_variables.scss +103 -0
  170. package/scss/main.scss +7 -0
  171. package/shims-vue.d.ts +9 -0
  172. package/tsconfig.json +31 -0
  173. package/webpack.config.js +126 -0
  174. package/wrapper.ts +51 -0
@@ -0,0 +1,665 @@
1
+ @use "sass:map";
2
+ @import "../../scss/components/utils";
3
+ @import "../../scss/components/variables";
4
+
5
+ .notifications-sidebar {
6
+ position: relative;
7
+ color: map.get($intems-colors, "text-primary");
8
+ .row {
9
+ margin-bottom: 0;
10
+ box-sizing: inherit;
11
+ .col {
12
+ padding: 0 0.75rem;
13
+ }
14
+ }
15
+
16
+ .col {
17
+ .row {
18
+ margin-left: -0.75rem;
19
+ margin-right: -0.75rem;
20
+ }
21
+ }
22
+ .v-dropdown-menu__container {
23
+ width: fit-content;
24
+ max-width: none;
25
+ min-width: none;
26
+ .v-dropdown-menu__header {
27
+ .note-title-row {
28
+ border-bottom: 1px map.get($intems-colors, "border") solid;
29
+ padding: 0 3px 0 13px;
30
+ margin-bottom: 10px;
31
+
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: space-between;
35
+ .col.s10 {
36
+ height: 50px;
37
+ line-height: 50px;
38
+ font-weight: bold;
39
+ }
40
+ .col.s8 {
41
+ height: 50px;
42
+ line-height: 50px;
43
+ margin-left: 0;
44
+ font-weight: bold;
45
+ }
46
+ .col.s2 {
47
+ height: 50px;
48
+ line-height: 50px;
49
+ margin-left: 5px;
50
+ display: flex;
51
+ align-items: center;
52
+ padding: 0 30px 0 0;
53
+ }
54
+ .sub-menu {
55
+ border: 1px map.get($intems-colors, "border") solid;
56
+ border-radius: 2px;
57
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
58
+ padding-left: 0px;
59
+ li {
60
+ min-height: 30px;
61
+ line-height: 30px;
62
+ width: 100%;
63
+ display: block;
64
+ &:hover,
65
+ &:active {
66
+ &:not(.is-disabled) {
67
+ background-color: map.get($intems-colors, "primary-container-tag");
68
+ }
69
+ }
70
+ a {
71
+ color: map.get($intems-colors, "text-primary");
72
+ font-size: 16px;
73
+ line-height: 17px;
74
+ padding: 10px 16px;
75
+ cursor: pointer;
76
+
77
+ &.is-disabled {
78
+ color: rgba(0, 0, 0, 0.42);
79
+ cursor: not-allowed;
80
+ opacity: 0.5;
81
+ text-decoration: none;
82
+ pointer-events: none;
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ .v-dropdown-menu__body {
90
+ .main-dropdown {
91
+ width: 370px;
92
+ height: auto !important;
93
+ transform: none !important;
94
+
95
+ @media #{$small-and-down} {
96
+ position: fixed;
97
+ width: 100% !important;
98
+ }
99
+
100
+ .default-tabs {
101
+ height: 38px;
102
+ line-height: 24px;
103
+ padding-left: 0;
104
+ list-style-type: none;
105
+ position: relative;
106
+ overflow-x: hidden;
107
+ overflow-y: hidden;
108
+ width: 100%;
109
+ background-color: map.get($intems-colors, "surface-primary");
110
+ margin: 0 auto;
111
+ white-space: nowrap;
112
+ border-bottom: 1px map.get($intems-colors, "border") solid;
113
+ button {
114
+ clear: inherit;
115
+ min-height: auto;
116
+ width: 50%;
117
+ line-height: 28px;
118
+ background-color: map.get($intems-colors, "surface-primary");
119
+ border: none;
120
+ cursor: pointer;
121
+ &.tab {
122
+ height: 20px;
123
+ display: inline-block;
124
+ text-align: center;
125
+ padding: 0;
126
+ margin: 0;
127
+
128
+ font-size: $font-size-12;
129
+ text-transform: initial;
130
+ padding: 0px 10px;
131
+ color: map.get($intems-colors, "text-tertiary");
132
+ background-color: inherit;
133
+
134
+ &.active,
135
+ &:focus,
136
+ &:hover,
137
+ &:focus.active {
138
+ background-color: inherit;
139
+ color: map.get($intems-colors, "text-primary");
140
+ }
141
+
142
+ .counter {
143
+ font-weight: bold;
144
+ text-align: center;
145
+ font-size: $font-size-10;
146
+ border-radius: 10px;
147
+ padding: 2px 6px;
148
+ color: map.get($intems-colors, "text-on-color");
149
+ background-color: map.get($intems-colors, "accent");
150
+ margin-left: 4px;
151
+ }
152
+ &:focus,
153
+ &:hover {
154
+ background-color: inherit;
155
+ }
156
+ }
157
+ }
158
+ .indicator {
159
+ background-color: map.get($intems-colors, "primary");
160
+ margin: 0 25px;
161
+ width: initial;
162
+ height: 3px;
163
+ width: 140px !important;
164
+
165
+ position: absolute;
166
+ bottom: 0;
167
+ height: 2px;
168
+ will-change: left, right;
169
+ transition: background-color 0.3s;
170
+ transition: transform 0.4s ease, width 0.4s ease;
171
+ }
172
+ }
173
+ .notification-content {
174
+ padding: 0;
175
+ margin-left: 0;
176
+ width: 100%;
177
+ height: fit-content;
178
+ .notifications-list {
179
+ .tab-content {
180
+ min-height: 120px;
181
+ max-height: 70vh;
182
+
183
+ .preloader {
184
+ display: flex;
185
+ align-items: center;
186
+ justify-content: center;
187
+
188
+ margin: 20px auto;
189
+ left: 38%;
190
+ display: inline-block;
191
+ position: relative;
192
+ width: 80px;
193
+ height: 80px;
194
+ }
195
+ .note {
196
+ &:hover .manage-notification {
197
+ display: inline-block;
198
+ }
199
+ &.read {
200
+ background-color: map.get($intems-colors, "disable");
201
+ }
202
+ &:not(.read) {
203
+ border-left: 3px solid map.get($intems-colors, "orangish");
204
+ }
205
+ .row {
206
+ position: relative;
207
+ display: flex;
208
+ }
209
+ border-bottom: 1px map.get($intems-colors, "border") solid;
210
+ &:last-child {
211
+ border-bottom: none;
212
+ }
213
+ padding: 20px 25px;
214
+ margin: 0 -0.75rem;
215
+ i.category-icon {
216
+ width: 28px;
217
+ height: 28px !important;
218
+ }
219
+ .new-notification {
220
+ position: absolute;
221
+ width: 9px;
222
+ height: 9px;
223
+ border-radius: 5px;
224
+ background-color: map.get($intems-colors, "accent");
225
+ top: 0;
226
+ right: 10px;
227
+ }
228
+ .manage-notification {
229
+ position: absolute;
230
+ right: 10px;
231
+ display: none;
232
+ i {
233
+ height: 16px;
234
+ &:before {
235
+ background-color: map.get($intems-colors, "icon");
236
+ }
237
+ &.visibility {
238
+ height: 18px;
239
+ width: 18px;
240
+ &:hover:before {
241
+ background-color: map.get($intems-colors, "information");
242
+ }
243
+ }
244
+ &.delete:hover:before {
245
+ background-color: map.get($intems-colors, "error");
246
+ }
247
+ }
248
+ }
249
+ .reject-color {
250
+ color: map.get($intems-colors, "error");
251
+ }
252
+ .note-title-col {
253
+ padding-left: 4px;
254
+
255
+ .text-muted {
256
+ font-size: 0.8rem;
257
+ color: #64748b;
258
+ }
259
+ }
260
+ .action-buttons {
261
+ height: 21px;
262
+ }
263
+ }
264
+ }
265
+ overflow-y: hidden;
266
+ box-shadow: inset 0 12px 8px -8px rgba(0, 0, 0, 0.12);
267
+ border-top: 1px map.get($intems-colors, "border") solid;
268
+ line-height: 18px;
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+
275
+ .notification-href {
276
+ padding: 0 15px 21px;
277
+ font-size: $font-size-18;
278
+ }
279
+
280
+ a {
281
+ color: map.get($intems-colors, "primary");
282
+ display: inline;
283
+ padding: 0;
284
+ font-size: inherit;
285
+ &:hover {
286
+ background-color: initial;
287
+ }
288
+ }
289
+
290
+ .primary-text {
291
+ font-size: $font-size-14 !important;
292
+ line-height: 1.29;
293
+ font-weight: bold;
294
+ }
295
+ .view-all-row {
296
+ border-top: 1px map.get($intems-colors, "border") solid;
297
+ line-height: 49px;
298
+ }
299
+
300
+ .ps__rail-x {
301
+ display: none !important;
302
+ }
303
+ .has-unread {
304
+ display: inline-block;
305
+ position: absolute;
306
+ top: 12px;
307
+ right: 7px;
308
+ height: 9px;
309
+ width: 9px;
310
+ border-radius: 50%;
311
+ background-color: map.get($intems-colors, "accent-top-menu");
312
+ }
313
+ .fade-enter-active,
314
+ .fade-leave-active {
315
+ transition: opacity 0.5s;
316
+ }
317
+ .fade-enter,
318
+ .fade-leave-to {
319
+ opacity: 0;
320
+ }
321
+ }
322
+ .bell-animation {
323
+ -webkit-animation: ring 5.6s 0.5s ease-in-out infinite;
324
+ -webkit-transform-origin: 50% 4px;
325
+ -moz-animation: ring 5.6s 0.5s ease-in-out infinite;
326
+ -moz-transform-origin: 50% 4px;
327
+ animation: ring 5.6s 0.5s ease-in-out infinite;
328
+ transform-origin: 50% 4px;
329
+ }
330
+
331
+ @-webkit-keyframes ring {
332
+ 0% {
333
+ -webkit-transform: rotate(0);
334
+ }
335
+ 1% {
336
+ -webkit-transform: rotate(32deg);
337
+ }
338
+ 3% {
339
+ -webkit-transform: rotate(-30deg);
340
+ }
341
+ 5% {
342
+ -webkit-transform: rotate(42deg);
343
+ }
344
+ 7% {
345
+ -webkit-transform: rotate(-40deg);
346
+ }
347
+ 9% {
348
+ -webkit-transform: rotate(36deg);
349
+ }
350
+ 11% {
351
+ -webkit-transform: rotate(-34deg);
352
+ }
353
+ 13% {
354
+ -webkit-transform: rotate(32deg);
355
+ }
356
+ 15% {
357
+ -webkit-transform: rotate(-30deg);
358
+ }
359
+ 17% {
360
+ -webkit-transform: rotate(30deg);
361
+ }
362
+ 19% {
363
+ -webkit-transform: rotate(-28deg);
364
+ }
365
+ 21% {
366
+ -webkit-transform: rotate(28deg);
367
+ }
368
+ 23% {
369
+ -webkit-transform: rotate(-26deg);
370
+ }
371
+ 25% {
372
+ -webkit-transform: rotate(26deg);
373
+ }
374
+ 27% {
375
+ -webkit-transform: rotate(-24deg);
376
+ }
377
+ 29% {
378
+ -webkit-transform: rotate(24deg);
379
+ }
380
+ 31% {
381
+ -webkit-transform: rotate(-22deg);
382
+ }
383
+ 33% {
384
+ -webkit-transform: rotate(23deg);
385
+ }
386
+ 35% {
387
+ -webkit-transform: rotate(-21deg);
388
+ }
389
+ 37% {
390
+ -webkit-transform: rotate(22deg);
391
+ }
392
+ 39% {
393
+ -webkit-transform: rotate(-20deg);
394
+ }
395
+ 41% {
396
+ -webkit-transform: rotate(21deg);
397
+ }
398
+ 43% {
399
+ -webkit-transform: rotate(-19deg);
400
+ }
401
+ 45% {
402
+ -webkit-transform: rotate(18deg);
403
+ }
404
+ 47% {
405
+ -webkit-transform: rotate(-16deg);
406
+ }
407
+ 50% {
408
+ -webkit-transform: rotate(14deg);
409
+ }
410
+ 52% {
411
+ -webkit-transform: rotate(-12deg);
412
+ }
413
+ 54% {
414
+ -webkit-transform: rotate(10deg);
415
+ }
416
+ 56% {
417
+ -webkit-transform: rotate(-8deg);
418
+ }
419
+ 58% {
420
+ -webkit-transform: rotate(6deg);
421
+ }
422
+ 60% {
423
+ -webkit-transform: rotate(-4deg);
424
+ }
425
+ 62% {
426
+ -webkit-transform: rotate(2deg);
427
+ }
428
+ 64% {
429
+ -webkit-transform: rotate(-1deg);
430
+ }
431
+ 66% {
432
+ -webkit-transform: rotate(1deg);
433
+ }
434
+
435
+ 70% {
436
+ -webkit-transform: rotate(0);
437
+ }
438
+ 100% {
439
+ -webkit-transform: rotate(0);
440
+ }
441
+ }
442
+
443
+ @-moz-keyframes ring {
444
+ 0% {
445
+ -moz-transform: rotate(0);
446
+ }
447
+ 1% {
448
+ -moz-transform: rotate(32deg);
449
+ }
450
+ 3% {
451
+ -moz-transform: rotate(-30deg);
452
+ }
453
+ 5% {
454
+ -moz-transform: rotate(42deg);
455
+ }
456
+ 7% {
457
+ -moz-transform: rotate(-40deg);
458
+ }
459
+ 9% {
460
+ -moz-transform: rotate(36deg);
461
+ }
462
+ 11% {
463
+ -moz-transform: rotate(-34deg);
464
+ }
465
+ 13% {
466
+ -moz-transform: rotate(32deg);
467
+ }
468
+ 15% {
469
+ -moz-transform: rotate(-30deg);
470
+ }
471
+ 17% {
472
+ -moz-transform: rotate(30deg);
473
+ }
474
+ 19% {
475
+ -moz-transform: rotate(-28deg);
476
+ }
477
+ 21% {
478
+ -moz-transform: rotate(28deg);
479
+ }
480
+ 23% {
481
+ -moz-transform: rotate(-26deg);
482
+ }
483
+ 25% {
484
+ -moz-transform: rotate(26deg);
485
+ }
486
+ 27% {
487
+ -moz-transform: rotate(-24deg);
488
+ }
489
+ 29% {
490
+ -moz-transform: rotate(24deg);
491
+ }
492
+ 31% {
493
+ -moz-transform: rotate(-22deg);
494
+ }
495
+ 33% {
496
+ -moz-transform: rotate(23deg);
497
+ }
498
+ 35% {
499
+ -moz-transform: rotate(-21deg);
500
+ }
501
+ 37% {
502
+ -moz-transform: rotate(22deg);
503
+ }
504
+ 39% {
505
+ -moz-transform: rotate(-20deg);
506
+ }
507
+ 41% {
508
+ -moz-transform: rotate(21deg);
509
+ }
510
+ 43% {
511
+ -moz-transform: rotate(-19deg);
512
+ }
513
+ 45% {
514
+ -moz-transform: rotate(18deg);
515
+ }
516
+ 47% {
517
+ -moz-transform: rotate(-16deg);
518
+ }
519
+ 50% {
520
+ -moz-transform: rotate(14deg);
521
+ }
522
+ 52% {
523
+ -moz-transform: rotate(-12deg);
524
+ }
525
+ 54% {
526
+ -moz-transform: rotate(10deg);
527
+ }
528
+ 56% {
529
+ -moz-transform: rotate(-8deg);
530
+ }
531
+ 58% {
532
+ -moz-transform: rotate(6deg);
533
+ }
534
+ 60% {
535
+ -moz-transform: rotate(-4deg);
536
+ }
537
+ 62% {
538
+ -moz-transform: rotate(2deg);
539
+ }
540
+ 64% {
541
+ -moz-transform: rotate(-1deg);
542
+ }
543
+ 66% {
544
+ -moz-transform: rotate(1deg);
545
+ }
546
+
547
+ 70% {
548
+ -moz-transform: rotate(0);
549
+ }
550
+ 100% {
551
+ -moz-transform: rotate(0);
552
+ }
553
+ }
554
+
555
+ @keyframes ring {
556
+ 0% {
557
+ transform: rotate(0);
558
+ }
559
+ 1% {
560
+ transform: rotate(32deg);
561
+ }
562
+ 3% {
563
+ transform: rotate(-30deg);
564
+ }
565
+ 5% {
566
+ transform: rotate(42deg);
567
+ }
568
+ 7% {
569
+ transform: rotate(-40deg);
570
+ }
571
+ 9% {
572
+ transform: rotate(36deg);
573
+ }
574
+ 11% {
575
+ transform: rotate(-34deg);
576
+ }
577
+ 13% {
578
+ transform: rotate(32deg);
579
+ }
580
+ 15% {
581
+ transform: rotate(-30deg);
582
+ }
583
+ 17% {
584
+ transform: rotate(30deg);
585
+ }
586
+ 19% {
587
+ transform: rotate(-28deg);
588
+ }
589
+ 21% {
590
+ transform: rotate(28deg);
591
+ }
592
+ 23% {
593
+ transform: rotate(-26deg);
594
+ }
595
+ 25% {
596
+ transform: rotate(26deg);
597
+ }
598
+ 27% {
599
+ transform: rotate(-24deg);
600
+ }
601
+ 29% {
602
+ transform: rotate(24deg);
603
+ }
604
+ 31% {
605
+ transform: rotate(-22deg);
606
+ }
607
+ 33% {
608
+ transform: rotate(23deg);
609
+ }
610
+ 35% {
611
+ transform: rotate(-21deg);
612
+ }
613
+ 37% {
614
+ transform: rotate(22deg);
615
+ }
616
+ 39% {
617
+ transform: rotate(-20deg);
618
+ }
619
+ 41% {
620
+ transform: rotate(21deg);
621
+ }
622
+ 43% {
623
+ transform: rotate(-19deg);
624
+ }
625
+ 45% {
626
+ transform: rotate(18deg);
627
+ }
628
+ 47% {
629
+ transform: rotate(-16deg);
630
+ }
631
+ 50% {
632
+ transform: rotate(14deg);
633
+ }
634
+ 52% {
635
+ transform: rotate(-12deg);
636
+ }
637
+ 54% {
638
+ transform: rotate(10deg);
639
+ }
640
+ 56% {
641
+ transform: rotate(-8deg);
642
+ }
643
+ 58% {
644
+ transform: rotate(6deg);
645
+ }
646
+ 60% {
647
+ transform: rotate(-4deg);
648
+ }
649
+ 62% {
650
+ transform: rotate(2deg);
651
+ }
652
+ 64% {
653
+ transform: rotate(-1deg);
654
+ }
655
+ 66% {
656
+ transform: rotate(1deg);
657
+ }
658
+
659
+ 70% {
660
+ transform: rotate(0);
661
+ }
662
+ 100% {
663
+ transform: rotate(0);
664
+ }
665
+ }