commit
						84a7ed034d
					
				@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					@use "theme/globals" as *;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:host {
 | 
					:host {
 | 
				
			||||||
    ion-row.addon-block-myoverview-filter {
 | 
					    ion-row.addon-block-myoverview-filter {
 | 
				
			||||||
        margin: 8px;
 | 
					        margin: 8px;
 | 
				
			||||||
@ -39,4 +41,14 @@
 | 
				
			|||||||
            color: var(--subdued-text-color);
 | 
					            color: var(--subdued-text-color);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ion-item-divider .core-button-spinner {
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        @include margin-horizontal(10px);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ion-badge.core-course-download-courses-progress {
 | 
				
			||||||
 | 
					            @include margin(null, 12px, null, null);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -141,12 +141,12 @@
 | 
				
			|||||||
                    </ion-item-divider>
 | 
					                    </ion-item-divider>
 | 
				
			||||||
                    <ion-item>
 | 
					                    <ion-item>
 | 
				
			||||||
                        <ion-radio [value]="0">
 | 
					                        <ion-radio [value]="0">
 | 
				
			||||||
                            <p>{{ 'addon.calendar.durationnone' | translate }}</p>
 | 
					                            {{ 'addon.calendar.durationnone' | translate }}
 | 
				
			||||||
                        </ion-radio>
 | 
					                        </ion-radio>
 | 
				
			||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                    <ion-item>
 | 
					                    <ion-item>
 | 
				
			||||||
                        <ion-radio [value]="1">
 | 
					                        <ion-radio [value]="1">
 | 
				
			||||||
                            <p><label for="timedurationuntil-button">{{ 'addon.calendar.durationuntil' | translate }}</label></p>
 | 
					                            <label for="timedurationuntil-button">{{ 'addon.calendar.durationuntil' | translate }}</label>
 | 
				
			||||||
                        </ion-radio>
 | 
					                        </ion-radio>
 | 
				
			||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                    <ion-item *ngIf="form.controls.duration.value === 1">
 | 
					                    <ion-item *ngIf="form.controls.duration.value === 1">
 | 
				
			||||||
@ -163,7 +163,7 @@
 | 
				
			|||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                    <ion-item>
 | 
					                    <ion-item>
 | 
				
			||||||
                        <ion-radio [value]="2">
 | 
					                        <ion-radio [value]="2">
 | 
				
			||||||
                            <p><label for="timedurationminutes">{{ 'addon.calendar.durationminutes' | translate }}</label></p>
 | 
					                            <label for="timedurationminutes">{{ 'addon.calendar.durationminutes' | translate }}</label>
 | 
				
			||||||
                        </ion-radio>
 | 
					                        </ion-radio>
 | 
				
			||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                    <ion-item *ngIf="form.controls.duration.value === 2">
 | 
					                    <ion-item *ngIf="form.controls.duration.value === 2">
 | 
				
			||||||
@ -194,14 +194,14 @@
 | 
				
			|||||||
                            <p class="item-heading">{{ 'addon.calendar.repeatedevents' | translate }}</p>
 | 
					                            <p class="item-heading">{{ 'addon.calendar.repeatedevents' | translate }}</p>
 | 
				
			||||||
                        </ion-label>
 | 
					                        </ion-label>
 | 
				
			||||||
                    </ion-item-divider>
 | 
					                    </ion-item-divider>
 | 
				
			||||||
                    <ion-item>
 | 
					                    <ion-item class="ion-text-wrap">
 | 
				
			||||||
                        <ion-radio value="1">
 | 
					                        <ion-radio [value]="1">
 | 
				
			||||||
                            <p>{{ 'addon.calendar.repeateditall' | translate:{$a: otherEventsCount} }}</p>
 | 
					                            {{ 'addon.calendar.repeateditall' | translate:{$a: otherEventsCount} }}
 | 
				
			||||||
                        </ion-radio>
 | 
					                        </ion-radio>
 | 
				
			||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                    <ion-item>
 | 
					                    <ion-item class="ion-text-wrap">
 | 
				
			||||||
                        <ion-radio value="0">
 | 
					                        <ion-radio [value]="0">
 | 
				
			||||||
                            <p>{{ 'addon.calendar.repeateditthis' | translate }}</p>
 | 
					                            {{ 'addon.calendar.repeateditthis' | translate }}
 | 
				
			||||||
                        </ion-radio>
 | 
					                        </ion-radio>
 | 
				
			||||||
                    </ion-item>
 | 
					                    </ion-item>
 | 
				
			||||||
                </ion-radio-group>
 | 
					                </ion-radio-group>
 | 
				
			||||||
 | 
				
			|||||||
@ -118,7 +118,7 @@ export class AddonCalendarEditEventPage implements OnInit, OnDestroy, CanLeave {
 | 
				
			|||||||
        this.form.addControl('duration', this.fb.control(0));
 | 
					        this.form.addControl('duration', this.fb.control(0));
 | 
				
			||||||
        this.form.addControl('timedurationminutes', this.fb.control(''));
 | 
					        this.form.addControl('timedurationminutes', this.fb.control(''));
 | 
				
			||||||
        this.form.addControl('repeat', this.fb.control(false));
 | 
					        this.form.addControl('repeat', this.fb.control(false));
 | 
				
			||||||
        this.form.addControl('repeats', this.fb.control('1'));
 | 
					        this.form.addControl('repeats', this.fb.control({ value: '1', disabled: true }));
 | 
				
			||||||
        this.form.addControl('repeateditall', this.fb.control(1));
 | 
					        this.form.addControl('repeateditall', this.fb.control(1));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.maxDate = CoreTimeUtils.getDatetimeDefaultMax();
 | 
					        this.maxDate = CoreTimeUtils.getDatetimeDefaultMax();
 | 
				
			||||||
 | 
				
			|||||||
@ -49,7 +49,7 @@ $grid-column-paddings: (
 | 
				
			|||||||
            position: relative;
 | 
					            position: relative;
 | 
				
			||||||
            flex-basis: 0;
 | 
					            flex-basis: 0;
 | 
				
			||||||
            flex-grow: 1;
 | 
					            flex-grow: 1;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100% !important;
 | 
				
			||||||
            max-width: 100%;
 | 
					            max-width: 100%;
 | 
				
			||||||
            min-height: auto;
 | 
					            min-height: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -876,7 +876,7 @@ export class CoreFormatTextDirective implements OnChanges, OnDestroy, AsyncDirec
 | 
				
			|||||||
                        if (iframe.contentDocument) {
 | 
					                        if (iframe.contentDocument) {
 | 
				
			||||||
                            const css = document.createElement('style');
 | 
					                            const css = document.createElement('style');
 | 
				
			||||||
                            css.setAttribute('type', 'text/css');
 | 
					                            css.setAttribute('type', 'text/css');
 | 
				
			||||||
                            css.innerHTML = 'iframe {width: 100%;height: 100%;}';
 | 
					                            css.innerHTML = 'iframe {width: 100%;height: 100%;position:absolute;top:0; left:0;}';
 | 
				
			||||||
                            iframe.contentDocument.head.appendChild(css);
 | 
					                            iframe.contentDocument.head.appendChild(css);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
 | 
				
			|||||||
@ -344,7 +344,8 @@ export class CoreIframeUtilsProvider {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        element.classList.add('core-loading');
 | 
					        element.classList.add('core-loading');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const treatElement = (sendResizeEvent: boolean = false) => {
 | 
					        const treatElement = (sendResizeEvent = false) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            this.checkOnlineFrameInOffline(element, isSubframe);
 | 
					            this.checkOnlineFrameInOffline(element, isSubframe);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const { window, document } = this.getContentWindowAndDocument(element);
 | 
					            const { window, document } = this.getContentWindowAndDocument(element);
 | 
				
			||||||
@ -361,10 +362,12 @@ export class CoreIframeUtilsProvider {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            // Iframe content has been loaded.
 | 
					            // Iframe content has been loaded.
 | 
				
			||||||
            // Send a resize events to the iframe so it calculates the right size if needed.
 | 
					            // Send a resize events to the iframe so it calculates the right size if needed.
 | 
				
			||||||
            if (window && sendResizeEvent) {
 | 
					            if (sendResizeEvent) {
 | 
				
			||||||
                element.classList.remove('core-loading');
 | 
					                element.classList.remove('core-loading');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                setTimeout(() => window.dispatchEvent && window.dispatchEvent(new Event('resize')), 1000);
 | 
					                if (window) {
 | 
				
			||||||
 | 
					                    setTimeout(() => window.dispatchEvent && window.dispatchEvent(new Event('resize')), 1000);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,7 +33,6 @@ body:not(.core-iframe-fullscreen) .collapsible-header-page {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    &:not(.collapsible-header-page-is-collapsed) .collapsible-header-collapsed {
 | 
					    &:not(.collapsible-header-page-is-collapsed) .collapsible-header-collapsed {
 | 
				
			||||||
        --core-header-toolbar-border-width: 0;
 | 
					        --core-header-toolbar-border-width: 0;
 | 
				
			||||||
        --core-header-buttons-background: var(--ion-background-color);
 | 
					 | 
				
			||||||
        --core-header-buttons-color: var(--text-color);
 | 
					        --core-header-buttons-color: var(--text-color);
 | 
				
			||||||
        ion-toolbar {
 | 
					        ion-toolbar {
 | 
				
			||||||
            --background: transparent;
 | 
					            --background: transparent;
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,7 @@ core-format-text {
 | 
				
			|||||||
        display: inline-block;
 | 
					        display: inline-block;
 | 
				
			||||||
        max-width: 100%;
 | 
					        max-width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .core-image-viewer-icon {
 | 
					        button.core-image-viewer-icon {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            @include position(null, 10px, 10px, null);
 | 
					            @include position(null, 10px, 10px, null);
 | 
				
			||||||
            color: var(--ion-text-color);
 | 
					            color: var(--ion-text-color);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										94
									
								
								src/theme/components/iframe.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								src/theme/components/iframe.scss
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,94 @@
 | 
				
			|||||||
 | 
					iframe {
 | 
				
			||||||
 | 
					    flex-grow: 1;
 | 
				
			||||||
 | 
					    border: 0;
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    max-width: 100%;
 | 
				
			||||||
 | 
					    background-color: var(--ion-background-color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.core-iframe-offline-disabled {
 | 
				
			||||||
 | 
					    display: none !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Iframe fullscreen manage.
 | 
				
			||||||
 | 
					body.core-iframe-fullscreen {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Using router outlet to avoid changing styles on modals.
 | 
				
			||||||
 | 
					    ion-router-outlet {
 | 
				
			||||||
 | 
					        .core-course-header,
 | 
				
			||||||
 | 
					        ion-tab-bar {
 | 
				
			||||||
 | 
					            display: none !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ion-tab-bar.mainmenu-tabs {
 | 
				
			||||||
 | 
					            display: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Restore original safe area.
 | 
				
			||||||
 | 
					            .tabs-inner {
 | 
				
			||||||
 | 
					                @supports (padding-left: constant(safe-area-inset-left)) {
 | 
				
			||||||
 | 
					                    --ion-safe-area-left: constant(safe-area-inset-left);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                @supports (padding-left: env(safe-area-inset-left)) {
 | 
				
			||||||
 | 
					                    --ion-safe-area-left: env(safe-area-inset-left);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .ion-page ion-header {
 | 
				
			||||||
 | 
					            --core-header-toolbar-height: 48px;
 | 
				
			||||||
 | 
					            --core-header-toolbar-color: white;
 | 
				
			||||||
 | 
					            --core-header-toolbar-background: black;
 | 
				
			||||||
 | 
					            --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
				
			||||||
 | 
					            --core-header-toolbar-border-width: 0px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ion-toolbar {
 | 
				
			||||||
 | 
					                h1, ion-back-button {
 | 
				
			||||||
 | 
					                    display: none;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @media screen and (orientation: landscape) {
 | 
				
			||||||
 | 
					            // Place ion-header on the side and hide text
 | 
				
			||||||
 | 
					            .ion-page {
 | 
				
			||||||
 | 
					                flex-direction: row-reverse;
 | 
				
			||||||
 | 
					                ion-header {
 | 
				
			||||||
 | 
					                    width: calc(var(--core-header-toolbar-height) + var(--ion-safe-area-right));
 | 
				
			||||||
 | 
					                    @include safe-area-padding-horizontal(null, 0px);
 | 
				
			||||||
 | 
					                    background: var(--core-header-toolbar-background);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ion-toolbar {
 | 
				
			||||||
 | 
					                        padding: 0;
 | 
				
			||||||
 | 
					                        height: 100%;
 | 
				
			||||||
 | 
					                        --padding-start: 0px;
 | 
				
			||||||
 | 
					                        --padding-end: 0px;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ion-buttons {
 | 
				
			||||||
 | 
					                        flex-direction: column-reverse;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            core-tabs-outlet {
 | 
				
			||||||
 | 
					                width: 100%;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Hide cards and items with colors on fullscreen iframes.
 | 
				
			||||||
 | 
					    @each $color-name, $unused in $colors {
 | 
				
			||||||
 | 
					        ion-card.core-#{$color-name}-card,
 | 
				
			||||||
 | 
					        .item.core-#{$color-name}-item {
 | 
				
			||||||
 | 
					            opacity: 0 !important;
 | 
				
			||||||
 | 
					            height: 0 !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Hide collapsible footer on fullscreen iframes.
 | 
				
			||||||
 | 
					    [collapsible-footer] {
 | 
				
			||||||
 | 
					        opacity: 0 !important;
 | 
				
			||||||
 | 
					        height: 0 !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								src/theme/components/ion-avatar.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/theme/components/ion-avatar.scss
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					// Avatar
 | 
				
			||||||
 | 
					// -------------------------
 | 
				
			||||||
 | 
					// Large centered avatar
 | 
				
			||||||
 | 
					img.large-avatar,
 | 
				
			||||||
 | 
					.large-avatar img {
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    margin: 8px auto;
 | 
				
			||||||
 | 
					    width: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					    height: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					    max-width: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					    max-height: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					    border-radius: 50%;
 | 
				
			||||||
 | 
					    background-color: transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ion-avatar {
 | 
				
			||||||
 | 
					    &.large-avatar {
 | 
				
			||||||
 | 
					        width: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					        height: var(--core-large-avatar-size);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    img {
 | 
				
			||||||
 | 
					        text-indent: -99999px;
 | 
				
			||||||
 | 
					        background-color: var(--gray-200);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								src/theme/components/ion-badge.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/theme/components/ion-badge.scss
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					ion-badge {
 | 
				
			||||||
 | 
					    line-height: 1.1;
 | 
				
			||||||
 | 
					    padding: 2px 8px;
 | 
				
			||||||
 | 
					    border-radius: var(--mdl-shape-borderRadius-lg);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -36,10 +36,49 @@ ion-card {
 | 
				
			|||||||
        justify-content: flex-end;
 | 
					        justify-content: flex-end;
 | 
				
			||||||
        margin: 0px 8px 8px 8px;
 | 
					        margin: 0px 8px 8px 8px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ion-button {
 | 
					        ion-button.button {
 | 
				
			||||||
            &[fill="outline"] {
 | 
					            --color: var(--gray-900);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &.button-outline {
 | 
				
			||||||
                --background: transparent;
 | 
					                --background: transparent;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Coloured cards.
 | 
				
			||||||
 | 
					    @each $color-name, $unused in $colors {
 | 
				
			||||||
 | 
					        &.core-#{$color-name}-card {
 | 
				
			||||||
 | 
					            --color-tint: var(--ion-color-#{$color-name}-tint);
 | 
				
			||||||
 | 
					            --color-shade: var(--ion-color-#{$color-name}-shade);
 | 
				
			||||||
 | 
					            --border-width: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            --border-color: var(--color-tint);
 | 
				
			||||||
 | 
					            --border-radius: var(--mdl-shape-borderRadius-sm);
 | 
				
			||||||
 | 
					            --background: var(--color-tint);
 | 
				
			||||||
 | 
					            --color: var(--color-shade);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ion-item.item {
 | 
				
			||||||
 | 
					                --background: var(--color-tint);
 | 
				
			||||||
 | 
					                --color: var(--color-shade);
 | 
				
			||||||
 | 
					                --inner-border-width: 0px;
 | 
				
			||||||
 | 
					                --border-width: 0px;
 | 
				
			||||||
 | 
					                font-size: var(--text-size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                &.item-label > ion-label,
 | 
				
			||||||
 | 
					                &.item-label > ion-label > p {
 | 
				
			||||||
 | 
					                    --color: var(--color-shade);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                > ion-icon[slot] {
 | 
				
			||||||
 | 
					                    color: var(--color-shade);
 | 
				
			||||||
 | 
					                    @include margin-horizontal(null, 16px);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ion-label {
 | 
				
			||||||
 | 
					                white-space: normal !important;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -15,6 +15,10 @@ input[type=checkbox] {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ion-checkbox::part(label) {
 | 
				
			||||||
 | 
					    white-space: normal;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ion-checkbox {
 | 
					ion-checkbox {
 | 
				
			||||||
    &.checkbox-disabled {
 | 
					    &.checkbox-disabled {
 | 
				
			||||||
        @include pointer-events-on-buttons();
 | 
					        @include pointer-events-on-buttons();
 | 
				
			||||||
 | 
				
			|||||||
@ -132,7 +132,6 @@ ion-header.header-md {
 | 
				
			|||||||
        --core-header-toolbar-border-width: 0;
 | 
					        --core-header-toolbar-border-width: 0;
 | 
				
			||||||
        --core-header-toolbar-background: transparent;
 | 
					        --core-header-toolbar-background: transparent;
 | 
				
			||||||
        --core-header-shadow: none !important;
 | 
					        --core-header-shadow: none !important;
 | 
				
			||||||
        --core-header-buttons-background: var(--ion-background-color);
 | 
					 | 
				
			||||||
        --core-header-buttons-color: var(--text-color);
 | 
					        --core-header-buttons-color: var(--text-color);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,14 @@ ion-icon {
 | 
				
			|||||||
        -webkit-transform: scale(-1, 1);
 | 
					        -webkit-transform: scale(-1, 1);
 | 
				
			||||||
        transform: scale(-1, 1);
 | 
					        transform: scale(-1, 1);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Coloured icons.
 | 
				
			||||||
 | 
					    @each $color-name, $unused in $colors {
 | 
				
			||||||
 | 
					        &.ion-color-#{$color-name} {
 | 
				
			||||||
 | 
					            --ion-color-base: var(--ion-color-#{$color-name});
 | 
				
			||||||
 | 
					            color: var(--ion-color-base);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// The following code is part of the Fontawesome css file that can be found
 | 
					// The following code is part of the Fontawesome css file that can be found
 | 
				
			||||||
 | 
				
			|||||||
@ -232,3 +232,21 @@ ion-item.item.item-file {
 | 
				
			|||||||
        --background: var(--light);
 | 
					        --background: var(--light);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Coloured items.
 | 
				
			||||||
 | 
					@each $color-name, $unused in $colors {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ion-item.item.core-#{$color-name}-item,
 | 
				
			||||||
 | 
					    .item.core-#{$color-name}-item {
 | 
				
			||||||
 | 
					        --color-base: var(--ion-color-#{$color-name});
 | 
				
			||||||
 | 
					        --color-shade: var(--ion-color-#{$color-name}-shade);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        --border-width: 0 0 3px 0;
 | 
				
			||||||
 | 
					        --border-color: var(--color-base);
 | 
				
			||||||
 | 
					        --inner-border-width: 0px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        > ion-icon[slot] {
 | 
				
			||||||
 | 
					            color: var(--color-base);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,10 @@ input[type=radio],
 | 
				
			|||||||
    --outer-border-width: 1px;
 | 
					    --outer-border-width: 1px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ion-radio::part(label) {
 | 
				
			||||||
 | 
					    white-space: normal;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.ios ion-radio {
 | 
					.ios ion-radio {
 | 
				
			||||||
    &::part(container) {
 | 
					    &::part(container) {
 | 
				
			||||||
        width: var(--size);
 | 
					        width: var(--size);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										82
									
								
								src/theme/components/table.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/theme/components/table.scss
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,82 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					// Table App styles
 | 
				
			||||||
 | 
					table.core-table {
 | 
				
			||||||
 | 
					    border-collapse: collapse;
 | 
				
			||||||
 | 
					    line-height: 20px;
 | 
				
			||||||
 | 
					    width: 98%;
 | 
				
			||||||
 | 
					    margin: 1em auto;
 | 
				
			||||||
 | 
					    color: var(--text-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    thead th {
 | 
				
			||||||
 | 
					        vertical-align: bottom;
 | 
				
			||||||
 | 
					        font-weight: bold;
 | 
				
			||||||
 | 
					        font-size: var(--mdl-typography-body-fontSize-md);
 | 
				
			||||||
 | 
					        background-color: var(--core-table-header-background);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    tbody {
 | 
				
			||||||
 | 
					        th {
 | 
				
			||||||
 | 
					            font-weight: normal;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        td {
 | 
				
			||||||
 | 
					            font-size: var(--mdl-typography-body-fontSize-lg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    th, td {
 | 
				
			||||||
 | 
					        padding: 8px;
 | 
				
			||||||
 | 
					        white-space: normal;
 | 
				
			||||||
 | 
					        text-align: start;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    tr {
 | 
				
			||||||
 | 
					        border-bottom: 1px solid var(--core-table-border-color);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .odd {
 | 
				
			||||||
 | 
					        --cell-background: var(--core-table-odd-cell-background);
 | 
				
			||||||
 | 
					        --cell-hover: var(--core-table-odd-cell-hover);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .even {
 | 
				
			||||||
 | 
					        --cell-background: var(--core-table-even-cell-background);
 | 
				
			||||||
 | 
					        --cell-hover: var(--core-table-even-cell-hover);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .odd, .even {
 | 
				
			||||||
 | 
					        td, th, th[aria-current="page"] {
 | 
				
			||||||
 | 
					            background-color: var(--cell-background);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &:hover {
 | 
				
			||||||
 | 
					                background-color: var(--cell-hover);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    tbody.auto-striped {
 | 
				
			||||||
 | 
					        tr:nth-child(odd) {
 | 
				
			||||||
 | 
					            background-color: var(--core-table-odd-cell-background);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &:hover {
 | 
				
			||||||
 | 
					                background-color: var(--core-table-even-odd-hover);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr:nth-child(even) {
 | 
				
			||||||
 | 
					            background-color: var(--core-table-even-cell-background);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            &:hover {
 | 
				
			||||||
 | 
					                background-color: var(--core-table-even-cell-hover);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .ion-no-border {
 | 
				
			||||||
 | 
					        border: 0 !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .dimmed_text,
 | 
				
			||||||
 | 
					    .hidden {
 | 
				
			||||||
 | 
					        opacity: .7;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -161,73 +161,6 @@ core-split-view.menu-and-content {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Iframe fullscreen manage.
 | 
					 | 
				
			||||||
// Using router outlet to avoid changing styles on modals.
 | 
					 | 
				
			||||||
body.core-iframe-fullscreen ion-router-outlet {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .core-course-header,
 | 
					 | 
				
			||||||
    ion-tab-bar {
 | 
					 | 
				
			||||||
        display: none !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ion-tab-bar.mainmenu-tabs {
 | 
					 | 
				
			||||||
        display: none;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Restore original safe area.
 | 
					 | 
				
			||||||
        .tabs-inner {
 | 
					 | 
				
			||||||
            @supports (padding-left: constant(safe-area-inset-left)) {
 | 
					 | 
				
			||||||
                --ion-safe-area-left: constant(safe-area-inset-left);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            @supports (padding-left: env(safe-area-inset-left)) {
 | 
					 | 
				
			||||||
                --ion-safe-area-left: env(safe-area-inset-left);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .ion-page ion-header {
 | 
					 | 
				
			||||||
        --core-header-toolbar-height: 48px;
 | 
					 | 
				
			||||||
        --core-header-toolbar-color: white;
 | 
					 | 
				
			||||||
        --core-header-toolbar-background: black;
 | 
					 | 
				
			||||||
        --core-header-buttons-background: var(--core-header-toolbar-background);
 | 
					 | 
				
			||||||
        --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
					 | 
				
			||||||
        --core-header-toolbar-border-width: 0px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ion-toolbar {
 | 
					 | 
				
			||||||
            h1, ion-back-button {
 | 
					 | 
				
			||||||
                display: none;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @media screen and (orientation: landscape) {
 | 
					 | 
				
			||||||
        // Place ion-header on the side and hide text
 | 
					 | 
				
			||||||
        .ion-page {
 | 
					 | 
				
			||||||
            flex-direction: row-reverse;
 | 
					 | 
				
			||||||
            ion-header {
 | 
					 | 
				
			||||||
                width: calc(var(--core-header-toolbar-height) + var(--ion-safe-area-right));
 | 
					 | 
				
			||||||
                @include safe-area-padding-horizontal(null, 0px);
 | 
					 | 
				
			||||||
                background: var(--core-header-toolbar-background);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                ion-toolbar {
 | 
					 | 
				
			||||||
                    padding: 0;
 | 
					 | 
				
			||||||
                    height: 100%;
 | 
					 | 
				
			||||||
                    --padding-start: 0px;
 | 
					 | 
				
			||||||
                    --padding-end: 0px;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                ion-buttons {
 | 
					 | 
				
			||||||
                    flex-direction: column-reverse;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        core-tabs-outlet {
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Hidden submit button.
 | 
					// Hidden submit button.
 | 
				
			||||||
.core-submit-hidden-enter {
 | 
					.core-submit-hidden-enter {
 | 
				
			||||||
    position: absolute;
 | 
					    position: absolute;
 | 
				
			||||||
@ -262,105 +195,6 @@ body.core-iframe-fullscreen ion-router-outlet {
 | 
				
			|||||||
    color: var(--gray-500);
 | 
					    color: var(--gray-500);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Card styles
 | 
					 | 
				
			||||||
@each $color-name, $unused in $colors {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Message cards.
 | 
					 | 
				
			||||||
    ion-card.core-#{$color-name}-card {
 | 
					 | 
				
			||||||
        --color-tint: var(--ion-color-#{$color-name}-tint);
 | 
					 | 
				
			||||||
        --color-shade: var(--ion-color-#{$color-name}-shade);
 | 
					 | 
				
			||||||
        --border-width: 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        --border-color: var(--color-tint);
 | 
					 | 
				
			||||||
        --border-radius: var(--mdl-shape-borderRadius-sm);
 | 
					 | 
				
			||||||
        --background: var(--color-tint);
 | 
					 | 
				
			||||||
        --color: var(--color-shade);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ion-item.item {
 | 
					 | 
				
			||||||
            --background: var(--color-tint);
 | 
					 | 
				
			||||||
            --color: var(--color-shade);
 | 
					 | 
				
			||||||
            --inner-border-width: 0px;
 | 
					 | 
				
			||||||
            --border-width: 0px;
 | 
					 | 
				
			||||||
            font-size: var(--text-size);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            &.item-label > ion-label,
 | 
					 | 
				
			||||||
            &.item-label > ion-label > p {
 | 
					 | 
				
			||||||
                --color: var(--color-shade);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            > ion-icon[slot] {
 | 
					 | 
				
			||||||
                color: var(--color-shade);
 | 
					 | 
				
			||||||
                @include margin-horizontal(null, 16px);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ion-label {
 | 
					 | 
				
			||||||
            white-space: normal !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ion-item.item.core-#{$color-name}-item {
 | 
					 | 
				
			||||||
        --color-base: var(--ion-color-#{$color-name});
 | 
					 | 
				
			||||||
        --color-shade: var(--ion-color-#{$color-name}-shade);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        --border-width: 0 0 3px 0;
 | 
					 | 
				
			||||||
        --border-color: var(--color-base);
 | 
					 | 
				
			||||||
        --inner-border-width: 0px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        > ion-icon[slot] {
 | 
					 | 
				
			||||||
            color: var(--color-base);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .item.core-#{$color-name}-item {
 | 
					 | 
				
			||||||
        --color-base: var(--ion-color-#{$color-name});
 | 
					 | 
				
			||||||
        --color-shade: var(--ion-color-#{$color-name}-shade);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        --border-width: 0 0 3px 0;
 | 
					 | 
				
			||||||
        --border-color: var(--color-base);
 | 
					 | 
				
			||||||
        --inner-border-width: 0px;
 | 
					 | 
				
			||||||
        > ion-icon[slot] {
 | 
					 | 
				
			||||||
            color: var(--color-base);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .core-iframe-fullscreen ion-card.core-#{$color-name}-card,
 | 
					 | 
				
			||||||
    .core-iframe-fullscreen .item.core-#{$color-name}-item {
 | 
					 | 
				
			||||||
        opacity: 0 !important;
 | 
					 | 
				
			||||||
        height: 0 !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ion-icon.ion-color-#{$color-name} {
 | 
					 | 
				
			||||||
        --ion-color-base: var(--ion-color-#{$color-name});
 | 
					 | 
				
			||||||
        color: var(--ion-color-base);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Avatar
 | 
					 | 
				
			||||||
// -------------------------
 | 
					 | 
				
			||||||
// Large centered avatar
 | 
					 | 
				
			||||||
img.large-avatar,
 | 
					 | 
				
			||||||
.large-avatar img {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    margin: 8px auto;
 | 
					 | 
				
			||||||
    width: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
    height: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
    max-width: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
    max-height: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
    border-radius: 50%;
 | 
					 | 
				
			||||||
    background-color: transparent;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ion-avatar.large-avatar {
 | 
					 | 
				
			||||||
    width: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
    height: var(--core-large-avatar-size);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ion-avatar ion-img, ion-avatar img {
 | 
					 | 
				
			||||||
    text-indent: -99999px;
 | 
					 | 
				
			||||||
    background-color: var(--gray-200);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Wait to load before showing the image.
 | 
					// Wait to load before showing the image.
 | 
				
			||||||
img[core-external-content]:not([src]) {
 | 
					img[core-external-content]:not([src]) {
 | 
				
			||||||
    visibility: hidden;
 | 
					    visibility: hidden;
 | 
				
			||||||
@ -398,27 +232,12 @@ ion-content.limited-width > :not([slot]) {
 | 
				
			|||||||
    min-height: 100%;
 | 
					    min-height: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ion-badge {
 | 
					 | 
				
			||||||
    line-height: 1.1;
 | 
					 | 
				
			||||||
    padding: 2px 8px;
 | 
					 | 
				
			||||||
    border-radius: var(--mdl-shape-borderRadius-lg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.core-anchor, core-format-text a {
 | 
					.core-anchor, core-format-text a {
 | 
				
			||||||
    color: var(--core-link-color);
 | 
					    color: var(--core-link-color);
 | 
				
			||||||
    cursor: pointer;
 | 
					    cursor: pointer;
 | 
				
			||||||
    text-decoration: underline;
 | 
					    text-decoration: underline;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
core-block ion-item-divider .core-button-spinner {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    @include margin-horizontal(10px);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ion-badge.core-course-download-courses-progress {
 | 
					 | 
				
			||||||
        @include margin(null, 12px, null, null);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Horizontal scrolling elements
 | 
					// Horizontal scrolling elements
 | 
				
			||||||
.core-horizontal-scroll {
 | 
					.core-horizontal-scroll {
 | 
				
			||||||
@ -443,10 +262,6 @@ mark, .matchtext {
 | 
				
			|||||||
    font-family: var(--mdl-typography-monospace-font);
 | 
					    font-family: var(--mdl-typography-monospace-font);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.core-iframe-offline-disabled {
 | 
					 | 
				
			||||||
    display: none !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.core-scanning-qr {
 | 
					.core-scanning-qr {
 | 
				
			||||||
    .ion-page, ion-modal::part(content) {
 | 
					    .ion-page, ion-modal::part(content) {
 | 
				
			||||||
        background-color: transparent !important;
 | 
					        background-color: transparent !important;
 | 
				
			||||||
@ -538,14 +353,6 @@ ion-content.disable-scroll-y::part(scroll) {
 | 
				
			|||||||
    will-change: auto;
 | 
					    will-change: auto;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
iframe {
 | 
					 | 
				
			||||||
    flex-grow: 1;
 | 
					 | 
				
			||||||
    border: 0;
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    max-width: 100%;
 | 
					 | 
				
			||||||
    background-color: var(--ion-background-color);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@if ($core-login-hide-need-help) {
 | 
					@if ($core-login-hide-need-help) {
 | 
				
			||||||
    .core-login-need-help {
 | 
					    .core-login-need-help {
 | 
				
			||||||
        display: none !important;
 | 
					        display: none !important;
 | 
				
			||||||
@ -556,17 +363,11 @@ ion-grid.core-no-grid > ion-row {
 | 
				
			|||||||
    display: block;
 | 
					    display: block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.core-underheader {
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    top: 0;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    right: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.core-footer-shadow [collapsible-footer] {
 | 
					.core-footer-shadow [collapsible-footer] {
 | 
				
			||||||
    box-shadow: var(--drop-shadow-top, none);
 | 
					    box-shadow: var(--drop-shadow-top, none);
 | 
				
			||||||
    clip-path: inset(-8px 0px 0px 0px); // Only show shadow at top.
 | 
					    clip-path: inset(-8px 0px 0px 0px); // Only show shadow at top.
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[collapsible-footer] {
 | 
					[collapsible-footer] {
 | 
				
			||||||
    transition: box-shadow 0.5s;
 | 
					    transition: box-shadow 0.5s;
 | 
				
			||||||
    width: 100%;
 | 
					    width: 100%;
 | 
				
			||||||
@ -611,11 +412,6 @@ ion-grid.core-no-grid > ion-row {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.core-iframe-fullscreen [collapsible-footer] {
 | 
					 | 
				
			||||||
    opacity: 0 !important;
 | 
					 | 
				
			||||||
    height: 0 !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@include media-breakpoint-up(md) {
 | 
					@include media-breakpoint-up(md) {
 | 
				
			||||||
    .adaptable-buttons-row,
 | 
					    .adaptable-buttons-row,
 | 
				
			||||||
    .adaptable-buttons-row-reverse {
 | 
					    .adaptable-buttons-row-reverse {
 | 
				
			||||||
@ -701,85 +497,3 @@ video::-webkit-media-text-track-display {
 | 
				
			|||||||
    overflow-x: auto;
 | 
					    overflow-x: auto;
 | 
				
			||||||
    display: block;
 | 
					    display: block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Table App styles
 | 
					 | 
				
			||||||
table.core-table {
 | 
					 | 
				
			||||||
    border-collapse: collapse;
 | 
					 | 
				
			||||||
    line-height: 20px;
 | 
					 | 
				
			||||||
    width: 98%;
 | 
					 | 
				
			||||||
    margin: 1em auto;
 | 
					 | 
				
			||||||
    color: var(--text-color);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    thead th {
 | 
					 | 
				
			||||||
        vertical-align: bottom;
 | 
					 | 
				
			||||||
        font-weight: bold;
 | 
					 | 
				
			||||||
        font-size: var(--mdl-typography-body-fontSize-md);
 | 
					 | 
				
			||||||
        background-color: var(--core-table-header-background);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tbody {
 | 
					 | 
				
			||||||
        th {
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        td {
 | 
					 | 
				
			||||||
            font-size: var(--mdl-typography-body-fontSize-lg);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    th, td {
 | 
					 | 
				
			||||||
        padding: 8px;
 | 
					 | 
				
			||||||
        white-space: normal;
 | 
					 | 
				
			||||||
        text-align: start;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tr {
 | 
					 | 
				
			||||||
        border-bottom: 1px solid var(--core-table-border-color);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .odd {
 | 
					 | 
				
			||||||
        --cell-background: var(--core-table-odd-cell-background);
 | 
					 | 
				
			||||||
        --cell-hover: var(--core-table-odd-cell-hover);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .even {
 | 
					 | 
				
			||||||
        --cell-background: var(--core-table-even-cell-background);
 | 
					 | 
				
			||||||
        --cell-hover: var(--core-table-even-cell-hover);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .odd, .even {
 | 
					 | 
				
			||||||
        td, th, th[aria-current="page"] {
 | 
					 | 
				
			||||||
            background-color: var(--cell-background);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            &:hover {
 | 
					 | 
				
			||||||
                background-color: var(--cell-hover);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tbody.auto-striped {
 | 
					 | 
				
			||||||
        tr:nth-child(odd) {
 | 
					 | 
				
			||||||
            background-color: var(--core-table-odd-cell-background);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            &:hover {
 | 
					 | 
				
			||||||
                background-color: var(--core-table-even-odd-hover);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        tr:nth-child(even) {
 | 
					 | 
				
			||||||
            background-color: var(--core-table-even-cell-background);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            &:hover {
 | 
					 | 
				
			||||||
                background-color: var(--core-table-even-cell-hover);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .ion-no-border {
 | 
					 | 
				
			||||||
        border: 0 !important;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .dimmed_text,
 | 
					 | 
				
			||||||
    .hidden {
 | 
					 | 
				
			||||||
        opacity: .7;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -93,7 +93,7 @@ html {
 | 
				
			|||||||
    --core-header-toolbar-background: var(--white);
 | 
					    --core-header-toolbar-background: var(--white);
 | 
				
			||||||
    --core-header-toolbar-border-color: var(--stroke);
 | 
					    --core-header-toolbar-border-color: var(--stroke);
 | 
				
			||||||
    --core-header-toolbar-color: var(--text-color);
 | 
					    --core-header-toolbar-color: var(--text-color);
 | 
				
			||||||
    --core-header-buttons-background: var(--core-header-toolbar-background);
 | 
					    --core-header-buttons-background: transparent;
 | 
				
			||||||
    --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
					    --core-header-buttons-color: var(--core-header-toolbar-color);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    --ion-searchbar-background: var(--ion-background-color);
 | 
					    --ion-searchbar-background: var(--ion-background-color);
 | 
				
			||||||
 | 
				
			|||||||
@ -22,8 +22,10 @@
 | 
				
			|||||||
@import "components/collapsible-item.scss";
 | 
					@import "components/collapsible-item.scss";
 | 
				
			||||||
@import "components/error-accordion.scss";
 | 
					@import "components/error-accordion.scss";
 | 
				
			||||||
@import "components/format-text.scss";
 | 
					@import "components/format-text.scss";
 | 
				
			||||||
 | 
					@import "components/iframe.scss";
 | 
				
			||||||
@import "components/mod-label.scss";
 | 
					@import "components/mod-label.scss";
 | 
				
			||||||
@import "components/rubrics.scss";
 | 
					@import "components/rubrics.scss";
 | 
				
			||||||
 | 
					@import "components/table.scss";
 | 
				
			||||||
@import "components/videojs.scss";
 | 
					@import "components/videojs.scss";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Ionic components overrides */
 | 
					/* Ionic components overrides */
 | 
				
			||||||
@ -31,7 +33,9 @@ html {
 | 
				
			|||||||
    @import "components/ion-accordion.scss";
 | 
					    @import "components/ion-accordion.scss";
 | 
				
			||||||
    @import "components/ion-action-sheet.scss";
 | 
					    @import "components/ion-action-sheet.scss";
 | 
				
			||||||
    @import "components/ion-alert.scss";
 | 
					    @import "components/ion-alert.scss";
 | 
				
			||||||
 | 
					    @import "components/ion-avatar.scss";
 | 
				
			||||||
    @import "components/ion-back-button.scss";
 | 
					    @import "components/ion-back-button.scss";
 | 
				
			||||||
 | 
					    @import "components/ion-badge.scss";
 | 
				
			||||||
    @import "components/ion-button.scss";
 | 
					    @import "components/ion-button.scss";
 | 
				
			||||||
    @import "components/ion-card.scss";
 | 
					    @import "components/ion-card.scss";
 | 
				
			||||||
    @import "components/ion-checkbox.scss";
 | 
					    @import "components/ion-checkbox.scss";
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user