File

libs/upp-wdgt/src/components/upp-form/upp-form.ts

Metadata

Index

Inputs
HostBindings
Accessors

Inputs

float
Type : "top" | "bottom"
Default value : 'bottom'

HostBindings

class
Type : string

Accessors

panelClasses
getpanelClasses()
<div style="clear: both; height: 200px"></div>
<div class="floating-buttons">
    <ng-content></ng-content>
</div>

./upp-form.scss

:host {
    form {
        position: relative;
        width: 100%;
        height: 100%;
    }

    ion-item {
        --background: transparent;

        ion-icon {
            font-size: 40px;
        }

        upp-image {
            height: 40px;
            width: 40px;
            object-fit: cover;
        }
    }

    ion-label {
        .small {
            font-size: 80%;
            opacity: .8;
        }
    }

    ::ng-deep upp-form-action {
        display: block;
        margin: 10px 0px;
        padding: 0px 10px;

        ion-item {
            --padding-start: 5px !important;
            --inner-padding-start: 8px !important;
            --padding-end: 5px !important;
            --inner-padding-end: 8px !important;

            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0px 0px 2px 0px;

            &.warning {
                color: var(--ion-color-warning);
            }

            &.danger {
                color: var(--ion-color-danger);
            }

            &.primary {
                color: var(--ion-color-primary);
            }

            ion-label {
                color: inherit;
            }

            ion-icon {
                color: inherit;
            }
        }
    }

    ::ng-deep upp-form-warning {
        display: block;
        margin-top: 0px;
        padding: 0px 10px;

        .warning-box {
            padding: 1px;
            overflow: hidden;

            max-height: 0px;
            &.visible {
                max-height: 60px;
            }
        }

        &.--none {
            ion-item {
                --padding-start: 0px !important;
                --inner-padding-start: 0px !important;
                --padding-end: 0px !important;
                --inner-padding-end: 0px !important;
    
                border-radius: 0px;
                box-shadow: none;    
            }
        }

        &.--solid {
            ion-item {
                --padding-start: 5px !important;
                --inner-padding-start: 8px !important;
                --padding-end: 5px !important;
                --inner-padding-end: 8px !important;
    
                border-radius: 8px;
                box-shadow: 0px 0px 2px 0px;
            }    
        }

        ion-item {
            overflow: hidden;

            &.warning {
                color: var(--ion-color-warning);
            }

            &.danger {
                color: var(--ion-color-danger);
            }

            &.primary {
                color: var(--ion-color-primary);
            }

            &.success {
                color: var(--ion-color-success);
            }

            ion-label {
                color: inherit;
            }

            ion-icon {
                color: inherit;

                &.start {
                    margin-right: 8px;
                }

                &.end {
                    margin-left: 8px;
                }
            }
        }
    }

    ::ng-deep upp-form-section {
        display: block;
        padding: 0px;

        ion-item {
            &.title {
                --padding-start: 5px;
                --inner-padding-start: 8px;
                --padding-end: 5px;
                --inner-padding-end: 8px;
            }
        }

        ion-list {
            margin: 0px 10px;
            overflow: hidden;

            ion-item {
                --padding-start: 0px;
                --inner-padding-start: 8px;
                --padding-end: 0px;
                --inner-padding-end: 8px;
                --border-color: var(--ion-background-color);
            }
        }

        &.--solid {
            ion-list {
                padding: 10px 5px;
                background: var(--ion-color-light);
                border-radius: 10px;
            }
        }

        &.--clear {
            ion-list {
                padding: 0px 0px;
                background: transparent !important;
                border-radius: 0px;
            }

            ::ng-deep upp-form-warning {
                padding: 0px !important;
            }
        }
    }

    ::ng-deep upp-form-image {
        display: block;

        .img-box {
            position: relative;
            height: 200px;
            overflow: hidden;
            margin-bottom: 2px;
    
            upp-image {
                max-height: 200px;
                width: 100%;
                object-fit: cover;
            }
        }
    }

    ::ng-deep upp-form-buttonbar {
        ion-grid, ion-row {
            margin: 0px;
            padding: 0px;
        }      
    }

    ::ng-deep upp-form-barbutton {
        flex: 1 1 0;
        max-width: 100%;

        ion-col {
            margin: 0px;
            padding: 0px;

            &:last-child {
                ion-button {
                    margin-right: 0px !important;
                }
            }        
        }

        ion-button {
            height: 55px;
            margin: 0px 1px 0px 0px;
    
            &.shade {
                opacity: .4;
            }
    
            ion-label {
                line-height: 1em;
    
                ion-icon {
                    font-size: 30px;
                }
    
                .small {
                    font-size: 12px;;
                }
            }
        }    
    }

    ::ng-deep upp-form-buttons {
        .floating-buttons {
            position: absolute;
            padding: 10px 8px 0px 8px;
            left: 0px;
            right: 0px;
            z-index: 1;    
        }
        
        &.--top .floating-buttons {
            top: 0px;
            padding-top: 10px;
            background: linear-gradient(180deg, rgba(var(--ion-background-color-rgb), 0.8) 0px, transparent 10px);                
        }

        &.--bottom .floating-buttons {
            bottom: 0px;
            padding-bottom: 10px;
            background: linear-gradient(180deg, transparent 0px, rgba(var(--ion-background-color-rgb), 0.8) 10px);                
        }
    }
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""