Пример #1
0
async def serve(q: Q):
    if not q.client.initialized:
        q.page['form'] = ui.form_card(
            box='1 1 -1 11',
            items=[
                ui.textbox(name='search',
                           label='Search',
                           placeholder='Enter a keyword...',
                           trigger=True),
                ui.table(name='issues',
                         columns=[
                             ui.table_column(name=name, label=name)
                             for name in column_names
                         ],
                         rows=df_to_rows(addresses))
            ])
        q.client.initialized = True
    else:
        items = q.page['form'].items
        search_box = items[0].textbox
        table = items[1].table
        term: str = q.args.search
        term = term.strip() if term else ''
        search_box.value = term
        table.rows = df_to_rows(
            search_df(addresses, term) if len(term) else addresses)

    await q.page.save()
async def serve(q: Q):
    q.page['example'] = ui.form_card(box='1 1 4 10', items=[
        ui.textbox(name='text', label='English', value=q.args.text or '', multiline=True, trigger=True),
        ui.label('Pig Latin'),
        ui.text(to_pig_latin(q.args.text) or '*Type in some text above to translate to Pig Latin!*'),
    ])
    await q.page.save()
Пример #3
0
async def get_inputs(q: Q):
    q.page['main'] = ui.form_card(
        box="1 2 8 5",
        items=[
            ui.text_xl('Enter your text input for generation:'),
            ui.textbox(name="input_text",
                       label='',
                       value=q.app.input_text,
                       multiline=True),
            ui.separator(),
            ui.slider(
                name="num_words_to_generate",
                label=
                "Maximum number of words to generate (including input text)",
                min=5,
                max=50,
                step=1,
                value=q.app.num_words_to_generate
                if q.app.num_words_to_generate else 12,
            ),
            ui.separator(),
            ui.buttons([
                ui.button(name="generate_text", label='Generate',
                          primary=True),
            ])
        ])
Пример #4
0
async def serve(q: Q):
    if not q.client.initialized:
        q.page['meta'] = ui.meta_card(box='', theme='neon')
        q.page['controls'] = ui.form_card(box='1 1 2 8', items=[
            ui.text_xl('Form'),
            ui.textbox(name='textbox', label='Textbox'),
            ui.toggle(name='toggle', label='Toggle'),
            ui.choice_group(name='choice_group', label='Choice group', choices=[
                ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
            ]),
            ui.checklist(name='checklist', label='Checklist', choices=[
                ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
            ]),
            ui.dropdown(name='dropdown', label='Dropdown', choices=[
                ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
            ]),
            ui.slider(name='slider', label='Slider'),
            ui.button(name='toggle_theme', label='Toggle Theme', primary=True)
        ])
        q.client.theme = 'default'
        q.client.initialized = True

    meta = q.page['meta']

    if q.args.toggle_theme:
        meta.theme = q.client.theme = 'neon' if q.client.theme == 'default' else 'default'

    await q.page.save()
Пример #5
0
def capture_credentials(q: Q):
    q.page['header'] = ui.header_card(
        box=config.boxes['banner'],
        title=config.title,
        subtitle=config.subtitle,
        icon=config.icon,
        icon_color=config.color,
    )
    q.page['twitter_app'] = ui.meta_card(box='')
    q.page['twitter_app'].dialog = ui.dialog(title='Twitter Credentials', primary=True, items=[
        ui.markup(name="request_access", visible=True, content=config.ask_for_access_text),
        ui.textbox(name='consumer_key', label='Consumer Key', required=True, password=True),
        ui.textbox(name='consumer_secret', label='Consumer Secret', required=True, password=True),
        ui.textbox(name='access_token', label='Access Token', required=True, password=True),
        ui.textbox(name='access_token_secret', label='Access Token Secret', required=True, password=True),
        ui.buttons([ui.button(name='submit', label='Configure', primary=True, tooltip="")])
    ])
Пример #6
0
async def serve(q: Q):
    if (not q.client.initialized
        ):  # First visit, create an empty form card for our wizard
        q.page['wizard'] = ui.form_card(box='1 1 2 4', items=[])
        q.client.initialized = True

    wizard = q.page['wizard']  # Get a reference to the wizard form
    if q.args.step1:
        wizard.items = [
            ui.text_xl('Wizard - Step 1'),
            ui.text('What is your name?', name='text'),
            ui.textbox(name='nickname', label='My name is...',
                       value='Gandalf'),
            ui.buttons([ui.button(name='step2', label='Next', primary=True)]),
        ]
    elif q.args.step2:
        q.client.nickname = q.args.nickname
        wizard.items = [
            ui.text_xl('Wizard - Step 2'),
            ui.text(f'Hi {q.args.nickname}! How do you feel right now?',
                    name='text'),
            ui.textbox(name='feeling', label='I feel...', value='magical'),
            ui.buttons([ui.button(name='step3', label='Next', primary=True)]),
        ]
    elif q.args.step3:
        wizard.items = [
            ui.text_xl('Wizard - Done'),
            ui.text(
                f'What a coincidence, {q.client.nickname}! I feel {q.args.feeling} too!',
                name='text',
            ),
            ui.buttons(
                [ui.button(name='step1', label='Try Again', primary=True)]),
        ]
    else:
        wizard.items = [
            ui.text_xl('Wizard Example'),
            ui.text("Let's have a conversation, shall we?"),
            ui.buttons(
                [ui.button(name='step1', label='Of course!', primary=True)]),
        ]

    await q.page.save()
Пример #7
0
async def new_todo(q: Q):
    # Display an input form
    q.page['form'] = ui.form_card(box='1 1 4 10',
                                  items=[
                                      ui.text_l('Add To Do'),
                                      ui.textbox(
                                          name='label',
                                          label='What needs to be done?',
                                          multiline=True),
                                      ui.buttons([
                                          ui.button(name='add_todo',
                                                    label='Add',
                                                    primary=True),
                                          ui.button(name='show_todos',
                                                    label='Back'),
                                      ]),
                                  ])
    await q.page.save()
Пример #8
0
    async def render(self, q: Q):
        """
        Render card in Wave.

        Args:
            q: Wave server
        """
        card = ui.form_card(
            box=self.box,
            items=[
                ui.textbox(name='input_text', label='Enter text', value=self.input_text, multiline=True),
                ui.button(name='analyze_text', label='Analyze', primary=True)
            ],
            title=self.title,
            commands=self.commands
        )

        q.page[self.name] = card
Пример #9
0
def add_sidebar_card(box, customer_ids, customer_names, customer_id, endpoint):
    id_choices = [
        ui.choice(str(id),
                  str(id) + ": " + name)
        for id, name in zip(customer_ids, customer_names)
    ]
    return ui.form_card(box=box,
                        items=[
                            ui.text_xl(content='Select Customer'),
                            ui.dropdown(name='customer_id',
                                        label='Customer',
                                        choices=id_choices,
                                        value=customer_id),
                            ui.textbox(name='endpoint',
                                       label='MLOps Endpoint',
                                       value=endpoint,
                                       placeholder="URL to MLOps deployment"),
                            ui.button(name='predict',
                                      label='Generate',
                                      primary=True)
                        ])
Пример #10
0
def card_add() -> ui.FormCard:
    company = ui.textbox(name='company', label='Company Name', required=True)
    button = ui.button(name='add_company', label='Add Company', primary=True)
    card = ui.form_card(box=box_sidebar, items=[company, button])

    return card
Пример #11
0
def show_form(q: Q):
    q.page["meta"] = ui.meta_card(
        box="",
        title="Tennis Match Prediction",
        refresh=1,
        layouts=[
            ui.layout(
                breakpoint="xs",
                width="1200px",
                zones=[
                    ui.zone("header"),
                    ui.zone("tournament"),
                    ui.zone(
                        "players",
                        direction=ui.ZoneDirection.ROW,
                        zones=[
                            ui.zone("player1", size="50%"),
                            ui.zone("player2", size="50%"),
                        ],
                    ),
                    ui.zone("submit", size="50%"),
                    ui.zone("result", size="50%"),
                ],
            )
        ],
    )

    q.page["header"] = ui.header_card(
        box="header", title="Tennis Match Prediction", subtitle=""
    )

    q.page["tournament"] = ui.form_card(
        box="tournament",
        items=[
            # Tournament name
            ui.dropdown(
                name="t_name",
                label="Tournament Name",
                placeholder="Wimbledon",
                choices=[
                    ui.choice(name=t_name, label=t_name) for t_name in tourn_ids.keys()
                ],
                trigger=False,
            ),
            # Round
            ui.dropdown(
                name="t_round",
                label="Round",
                placeholder="Final",
                choices=[
                    ui.choice(name=t_round, label=t_round) for t_round in round_list
                ],
                trigger=False,
            ),
        ],
    )

    q.page["p1"] = ui.form_card(
        box="player1",
        items=[
            ui.text_l("Player 1"),
            ui.dropdown(
                name="p1_name",
                label="Name",
                placeholder="Roger Federer",
                choices=[
                    ui.choice(name=p_name, label=p_name) for p_name in player_ids.keys()
                ],
                trigger=False,
            ),
            ui.textbox(name="p1_rank", label="Rank"),
            ui.textbox(name="p1_age", label="Age"),
        ],
    )

    q.page["player2"] = ui.form_card(
        box="player2",
        items=[
            ui.text_l("Player 2"),
            ui.dropdown(
                name="p2_name",
                label="Name",
                placeholder="Rafael Nadal",
                choices=[
                    ui.choice(name=p_name, label=p_name) for p_name in player_ids.keys()
                ],
                trigger=False,
            ),
            ui.textbox(name="p2_rank", label="Rank"),
            ui.textbox(name="p2_age", label="Age"),
        ],
    )

    q.page["submit"] = ui.form_card(
        box="submit",
        items=[
            ui.buttons(
                items=[ui.button(name="submit", label="Submit", primary=True)],
                justify="center",
            )
        ],
    )

    result_str = "" if not q.client.result_str else q.client.result_str

    q.page["result"] = ui.markdown_card(
        box="result",
        title="Results",
        content=result_str,
    )
Пример #12
0
]
page = site['/demo']
page['header1'] = ui.header_card(
    box='1 1 9 1',
    title='Transparent header',
    subtitle='And now for something completely different!',
    image=
    'https://www.h2o.ai/wp-content/themes/h2o2018/templates/dist/images/h2o_logo.svg',
    items=[
        ui.button(name='btn1', label='Button 1'),
        ui.button(name='btn2', label='Button 2'),
        ui.button(name='btn3', label='Button 3'),
    ],
    secondary_items=[
        ui.textbox(name='search',
                   icon='Search',
                   width='300px',
                   placeholder='Search...')
    ],
    color='transparent')
page['header2'] = ui.header_card(
    box='1 2 9 1',
    title='Card color header',
    subtitle='And now for something completely different!',
    items=[ui.menu(image=image, items=commands)],
    secondary_items=[
        ui.button(name='btn1', label='Link 1', link=True),
        ui.button(name='btn2', label='Link 2', link=True),
        ui.button(name='btn3', label='Link 3', link=True),
    ],
    nav=[
        ui.nav_group('Menu',
Пример #13
0
async def showManufacturers(q: Q):
    items = [ui.tabs(name='menu', value=q.args.menu, items=tabs)]

    print('---------------------------')
    print('== MANUFACTURER TAB == ')

    ## when user is adding new manufacturer
    if q.args.show_inputs:
        items.extend([
            ui.text_xl(content='Add Manufacturer'),
            ui.textbox(name='manufacturer', label='Manufacturer'),
            ui.textbox(name='product', label='Product'),
            # ui.dropdown(name='uom', label='Unit of Measurement', choices=[
            #     ui.choice(name=x, label=x) for x in uom
            # ]),
            ui.button(name='show_tables', label='Submit', primary=True)
        ])

    # ## when user is editing existing manufacturer
    # elif q.args.edit_button:
    #   items.extend([ui.text_xl(content='Edit Manufacturer'),
    #   ui.textbox(name='manufacturer', label='Manufacturer'),
    #   # ui.textbox(name='product', label='Product'),
    #   # ui.dropdown(name='uom', label='Unit of Measurement', choices=[
    #   #     ui.choice(name=x, label=x) for x in uom
    #   # ]),
    #   ui.button(name='show_tables', label='Submit', primary=True)])

    ## default goes here
    else:

        ## user have click has clicked 'Submit' button after adding supplier
        if q.args.show_tables:
            l_manufacturers.append([q.args.manufacturer, q.args.product])
            m = Manufacturers(q.args.manufacturer, q.args.product)
            manufacturers.append(m)

            items.append(
                ui.message_bar(type='success',
                               text='You have successfully added a product'))

            ## GET ALL MANUFACTURERS DATA

        ## default view (if there's a manufacturer data)
        if len(manufacturers) > 0:
            items.append(
                ui.table(name='manufacturers',
                         columns=column_manufacturer_table,
                         rows=[
                             ui.table_row(name=manufacturer.id,
                                          cells=[
                                              manufacturer.manufacturer,
                                              manufacturer.product
                                          ]) for manufacturer in manufacturers
                         ],
                         groupable=True,
                         downloadable=True,
                         resettable=True,
                         height='500px'))

        ## GET ALL MANUFACTURERS DATA

        ## default view (if there's no manufacturer data)
        else:
            items.append(ui.text_l(content='No Manufacturer found'))

        # items.append(ui.button(name='show_inputs', label='Add Manufacturer', primary=True))
        items.append(
            ui.buttons([
                ui.button(name='show_inputs',
                          label='Add Manufacturer',
                          primary=True),
                ui.button(name='delete_button', label='Delete Manufacturer'),
                ui.button(name='edit_button', label='Edit Manufacturer'),
            ]))

    q.page['example'] = ui.form_card(box='1 2 -1 -1', items=items)
    await q.page.save()
Пример #14
0
async def showSuppliers(q: Q):
    items = [ui.tabs(name='menu', value=q.args.menu, items=tabs)]
    print('items in supplier: ' + str(items))

    ## if user clicks 'Add Supplier'
    if q.args.show_inputs:
        ## need to get manufacturer data first (later used for the dropdown when addiing new supplier)
        df_m = pd.DataFrame(l_manufacturers,
                            columns=['manufacturer', 'product'])

        ## if there is no Manufacter data, then the user should add manufacturer data first
        if len(df_m) == 0:
            items.extend([
                ui.message_bar(type='info',
                               text='Try adding manufacturer first'),
                ui.button(name='goto_manufacturer',
                          label='Close',
                          primary=True)
            ])

        ## there's a manufacturer data, then go here
        else:
            items.extend([
                ui.text_xl(content='Add Supplier'),
                ui.textbox(name='supplier', label='Supplier'),
                ui.dropdown(
                    name='manufacturer',
                    label='Manufacturer',
                    choices=[  ## dropdown existing manufacturers
                        ui.choice(name=x, label=x)
                        for x in df_m['manufacturer'].unique()
                    ]),
                ui.dropdown(
                    name='product',
                    label='Product',
                    choices=[  ## dropdown existing items
                        ui.choice(name=x, label=x)
                        for x in df_m['product'].unique()
                    ]),  ## product should based on the what manufacturer have
                # ui.dropdown(name='uom', label='Unit of Measurement', choices=[ ## dropdown unit of measurement based on UOM variable above
                #     ui.choice(name=x, label=x) for x in uom
                # ]),
                # ui.textbox(name='selling_price', label='Price'),
                # ui.textbox(name='lead_time', label='Lead Time(days)'),
                # ui.textbox(name='delivery_time', label='Delivery Time(days)'),
                ui.button(name='show_tables', label='Submit',
                          primary=True)  ## submit button
            ])

    ## user hasn't clicked 'Add suppliers' button
    else:
        ## user have click has clicked 'Submit' button after adding supplier
        if q.args.show_tables:
            l_suppliers.append(
                [q.args.supplier, q.args.manufacturer, q.args.product])  ## !!!
            s = Suppliers(q.args.supplier, q.args.manufacturer, q.args.product)
            suppliers.append(s)
            items.append(
                ui.message_bar(type='success',
                               text='You have successfully added a supplier'))

        ## default view (if there's suppliers data)
        if len(suppliers) > 0:
            items.append(
                ui.table(name='suppliers',
                         columns=column_supplier_table,
                         rows=[
                             ui.table_row(name=supplier.id,
                                          cells=[
                                              supplier.supplier,
                                              supplier.manufacturer,
                                              supplier.product
                                          ]) for supplier in suppliers
                         ],
                         groupable=True,
                         downloadable=True,
                         resettable=True,
                         height='500px'))

        ## default view (if there's a supplier data)
        else:
            items.append(ui.text_l(content='No Supplier found'))

        # items.append(ui.button(name='show_inputs', label='Add Supplier', primary=True))

        items.append(
            ui.buttons([
                ui.button(name='show_inputs',
                          label='Add Supplier',
                          primary=True),
                ui.button(name='delete_button', label='Delete Supplier'),
                ui.button(name='edit_button', label='Edit Supplier'),
            ]))

    q.page['example'] = ui.form_card(box='1 2 -1 -1', items=items)
    await q.page.save()
Пример #15
0
async def serve(q: Q):
    q.page['example'] = ui.form_card(box='1 1 4 10', items=[
        ui.text_xl(content='Extra-large text, for headings.'),
        ui.text_l(content='Large text, for sub-headings.'),
        ui.text_m(content='Body text, for paragraphs and other content.'),
        ui.text_s(content='Small text, for small print.'),
        ui.text_xs(content='Extra-small text, for really small print.'),
        ui.separator(label='A separator sections forms'),
        ui.progress(label='A progress bar'),
        ui.progress(label='A progress bar'),
        ui.message_bar(type='success', text='Message bar'),
        ui.textbox(name='textbox', label='Textbox'),
        ui.label(label='Checkboxes'),
        ui.checkbox(name='checkbox1', label='A checkbox'),
        ui.checkbox(name='checkbox1', label='Another checkbox'),
        ui.checkbox(name='checkbox1', label='Yet another checkbox'),
        ui.toggle(name='toggle', label='Toggle'),
        ui.choice_group(name='choice_group', label='Choice group', choices=[
            ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
        ]),
        ui.checklist(name='checklist', label='Checklist', choices=[
            ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
        ]),
        ui.dropdown(name='dropdown', label='Dropdown', choices=[
            ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
        ]),
        ui.dropdown(name='dropdown', label='Multi-valued Dropdown', values=[], choices=[
            ui.choice(name=x, label=x) for x in ['Egg', 'Bacon', 'Spam']
        ]),
        ui.combobox(name='combobox', label='Combobox', choices=['Choice 1', 'Choice 2', 'Choice 3']),
        ui.slider(name='slider', label='Slider'),
        ui.range_slider(name='range_slider', label='Range slider', max=99),
        ui.spinbox(name='spinbox', label='Spinbox'),
        ui.date_picker(name='date_picker', label='Date picker'),
        ui.color_picker(name='color_picker', label='Color picker'),
        ui.buttons([
            ui.button(name='primary_button', label='Primary', primary=True),
            ui.button(name='standard_button', label='Standard'),
            ui.button(name='standard_disabled_button', label='Standard', disabled=True),
        ]),
        ui.file_upload(name='file_upload', label='File upload'),
        ui.table(name='table', columns=[
            ui.table_column(name='col1', label='Column 1'),
            ui.table_column(name='col2', label='Column 2'),
        ], rows=[
            ui.table_row(name='row1', cells=['Text A', 'Text B']),
            ui.table_row(name='row2', cells=['Text C', 'Text D']),
            ui.table_row(name='row3', cells=['Text E', 'Text F']),
        ]),
        ui.link(label='Link'),
        ui.tabs(name='tabs', items=[
            ui.tab(name='email', label='Mail', icon='Mail'),
            ui.tab(name='events', label='Events', icon='Calendar'),
            ui.tab(name='spam', label='Spam'),
        ]),
        ui.expander(name='expander', label='Expander'),
        ui.frame(path='https://example.com'),
        ui.markup(content=html),
        ui.template(
            content=menu,
            data=pack(dict(dishes=[
                dict(name='Spam', price='$2.00'),
                dict(name='Ham', price='$3.45'),
                dict(name='Eggs', price='$1.75'),
            ]))
        ),
        ui.picker(name='picker', label='Picker', choices=[
            ui.choice('choice1', label='Choice 1'),
            ui.choice('choice2', label='Choice 2'),
            ui.choice('choice3', label='Choice 3'),
        ]),
        ui.stepper(name='stepper', items=[
            ui.step(label='Step 1', icon='MailLowImportance'),
            ui.step(label='Step 2', icon='TaskManagerMirrored'),
            ui.step(label='Step 3', icon='Cafe'),
        ]),
        ui.visualization(
            plot=ui.plot([ui.mark(type='interval', x='=product', y='=price', y_min=0)]),
            data=data(fields='product price', rows=[(c, x) for c, x, _ in [f.next() for _ in range(n)]], pack=True),
        ),
        ui.vega_visualization(
            specification=spec,
            data=data(fields=["a", "b"], rows=[
                ["A", rnd()], ["B", rnd()], ["C", rnd()],
                ["D", rnd()], ["E", rnd()], ["F", rnd()],
                ["G", rnd()], ["H", rnd()], ["I", rnd()]
            ], pack=True),
        ),
        ui.button(name='show_inputs', label='Submit', primary=True),
    ])
    await q.page.save()
Пример #16
0
def home_content(q: Q):
    # The meta card's 'zones' attribute defines placeholder zones to lay out cards for different viewport sizes.
    # We define four layout schemes here.
    q.page['twitter_app'] = ui.meta_card(
        box='',
        layouts=[
            ui.layout(
                # If the viewport width >= 0:
                breakpoint='xs',
                width='400px',
                zones=[
                    # 80px high header
                    ui.zone('header', size='80px'),
                    ui.zone(
                        'search_bar',
                        direction=ui.ZoneDirection.ROW,
                        size=80,
                        zones=[
                            # 400px wide search_text_area
                            ui.zone('search_text_area',
                                    size='400px',
                                    direction=ui.ZoneDirection.ROW),
                        ]),
                    ui.zone(
                        'search_button_area',
                        direction=ui.ZoneDirection.ROW,
                        size=80,
                        zones=[
                            # 400px wide search_button
                            ui.zone('search_button',
                                    size='400px',
                                    direction=ui.ZoneDirection.ROW),
                        ]),
                    # Use remaining space for body
                    ui.zone('body',
                            direction=ui.ZoneDirection.COLUMN,
                            size='450px',
                            zones=create_twitter_card_slots(12, 1)),
                ]),
            ui.layout(
                # If the viewport width >= 768:
                breakpoint='m',
                width='768px',
                zones=[
                    # 80px high header
                    ui.zone('header', size='80px'),
                    ui.zone(
                        'search_bar',
                        direction=ui.ZoneDirection.ROW,
                        size=80,
                        zones=[
                            # 600px wide search_text_area
                            ui.zone('search_text_area',
                                    size='600px',
                                    direction=ui.ZoneDirection.ROW),
                            # 160px wide search_button
                            ui.zone('search_button',
                                    size='200px',
                                    direction=ui.ZoneDirection.ROW),
                        ]),
                    # Use remaining space for body
                    ui.zone('body',
                            direction=ui.ZoneDirection.COLUMN,
                            size='800px',
                            zones=create_twitter_card_slots(6, 2))
                ]),
            ui.layout(
                # If the viewport width >= 1200:
                breakpoint='xl',
                width='1200px',
                zones=[
                    # 80px high header
                    ui.zone('header', size='80px'),
                    ui.zone(
                        'search_bar',
                        direction=ui.ZoneDirection.ROW,
                        size=80,
                        zones=[
                            # 1000px wide search_text_area
                            ui.zone('search_text_area',
                                    size='1000px',
                                    direction=ui.ZoneDirection.ROW),
                            # 215px wide search_button
                            ui.zone('search_button',
                                    size='215px',
                                    direction=ui.ZoneDirection.ROW),
                        ]),
                    # Use remaining space for body
                    ui.zone('body',
                            direction=ui.ZoneDirection.COLUMN,
                            size='1200px',
                            zones=create_twitter_card_slots(4, 3))
                ]),
            ui.layout(
                # If the viewport width >= 1600:
                breakpoint='1600px',
                width='1600px',
                zones=[
                    # 80px high header
                    ui.zone('header', size='80px'),
                    ui.zone(
                        'search_bar',
                        direction=ui.ZoneDirection.ROW,
                        size=80,
                        zones=[
                            # 1400px wide search_text_area
                            ui.zone('search_text_area',
                                    size='1400px',
                                    direction=ui.ZoneDirection.ROW),
                            # 230px wide search_button
                            ui.zone('search_button',
                                    size='230px',
                                    direction=ui.ZoneDirection.ROW),
                        ]),
                    # Use remaining space for body
                    ui.zone('body',
                            direction=ui.ZoneDirection.COLUMN,
                            size='1600px',
                            zones=create_twitter_card_slots(3, 4))
                ])
        ])
    q.page['header'] = ui.header_card(
        box='header',
        title=config.title,
        subtitle=config.subtitle,
        icon=config.icon,
        icon_color=config.color,
    )

    q.page["search_text_area"] = ui.form_card(box=ui.boxes('search_text_area'),
                                              items=[
                                                  ui.textbox(
                                                      name='text',
                                                      label='',
                                                      placeholder='#h2oai',
                                                      value=q.args.text,
                                                      multiline=False,
                                                      trigger=False)
                                              ])

    q.page["search_button"] = ui.form_card(
        box=ui.boxes('search_button'),
        items=[ui.button(name="search", label="search", primary=True)])

    for tweet_count in range(0, config.max_tweet_count):
        q.page[f'twitter_card_{tweet_count}'] = ui.form_card(
            box=f'content_{tweet_count}', items=[])
Пример #17
0
def get_form_items(txt: Optional[str]):
    return [
        ui.textbox(name='text', label='English', multiline=True, trigger=True),
        ui.label('Pig Latin'),
        ui.text(to_pig_latin(txt)),
    ]
Пример #18
0
    async def render(self, q: Q):
        """
        Render card in Wave.

        Args:
            q: Wave server
        """
        card = ui.form_card(box=self.box,
                            items=[
                                ui.toggle(name='split_sentences',
                                          label='Split Sentences',
                                          value=self.split_sentences,
                                          trigger=True),
                                ui.toggle(name='fine_grained',
                                          label='Fine Grained',
                                          value=self.fine_grained,
                                          trigger=True),
                                ui.toggle(name='add_lemma',
                                          label='Add Lemma',
                                          value=self.add_lemma,
                                          trigger=True),
                                ui.toggle(name='collapse_punct',
                                          label='Merge Punctuation',
                                          value=self.collapse_punct,
                                          trigger=True),
                                ui.toggle(name='collapse_phrases',
                                          label='Merge Phrases',
                                          value=self.collapse_phrases,
                                          trigger=True),
                                ui.toggle(name='compact',
                                          label='Make Compact',
                                          value=self.compact,
                                          trigger=True),
                                ui.inline(items=[
                                    ui.textbox(name='color',
                                               label='Visualizer Color',
                                               value=self.color,
                                               trigger=True),
                                    ui.textbox(name='bg',
                                               label='Background Color',
                                               value=self.bg,
                                               trigger=True)
                                ]),
                                ui.inline(items=[
                                    ui.textbox(name='font',
                                               label='Font',
                                               value=self.font,
                                               trigger=True),
                                    ui.textbox(name='offset_x',
                                               label='Offset-X',
                                               value=str(self.offset_x),
                                               trigger=True)
                                ]),
                                ui.inline(items=[
                                    ui.textbox(name='arrow_stroke',
                                               label='Arrow Stroke',
                                               value=str(self.arrow_stroke),
                                               suffix='px',
                                               trigger=True),
                                    ui.textbox(name='arrow_width',
                                               label='Arrow Width',
                                               value=str(self.arrow_width),
                                               suffix='px',
                                               trigger=True),
                                    ui.textbox(name='arrow_spacing',
                                               label='Arrow Spacing',
                                               value=str(self.arrow_spacing),
                                               suffix='px',
                                               trigger=True)
                                ]),
                                ui.inline(items=[
                                    ui.textbox(name='word_spacing',
                                               label='Word Spacing',
                                               value=str(self.word_spacing),
                                               suffix='px',
                                               trigger=True),
                                    ui.textbox(name='word_distance',
                                               label='Word Distance',
                                               value=str(self.word_distance),
                                               suffix='px',
                                               trigger=True)
                                ])
                            ],
                            title=self.title,
                            commands=self.commands)

        q.page[self.name] = card
async def serve(q: Q):
    if q.args.show_inputs:
        q.page['example'].items = [
            ui.text(f'textbox={q.args.textbox}'),
            ui.text(f'textbox_disabled={q.args.textbox_disabled}'),
            ui.text(f'textbox_readonly={q.args.textbox_readonly}'),
            ui.text(f'textbox_required={q.args.textbox_required}'),
            ui.text(f'textbox_error={q.args.textbox_error}'),
            ui.text(f'textbox_mask={q.args.textbox_mask}'),
            ui.text(f'textbox_icon={q.args.textbox_icon}'),
            ui.text(f'textbox_prefix={q.args.textbox_prefix}'),
            ui.text(f'textbox_suffix={q.args.textbox_suffix}'),
            ui.text(f'textbox_placeholder={q.args.textbox_placeholder}'),
            ui.text(
                f'textbox_disabled_placeholder={q.args.textbox_disabled_placeholder}'
            ),
            ui.text(f'textbox_multiline={q.args.textbox_multiline}'),
            ui.button(name='show_form', label='Back', primary=True),
        ]
    else:
        q.page['example'] = ui.form_card(
            box='1 1 4 10',
            items=[
                ui.textbox(name='textbox', label='Standard'),
                ui.textbox(name='textbox_disabled',
                           label='Disabled',
                           value='I am disabled',
                           disabled=True),
                ui.textbox(name='textbox_readonly',
                           label='Read-only',
                           value='I am read-only',
                           readonly=True),
                ui.textbox(name='textbox_required',
                           label='Required',
                           required=True),
                ui.textbox(name='textbox_error',
                           label='With error message',
                           error='I have an error'),
                ui.textbox(name='textbox_mask',
                           label='With input mask',
                           mask='(999) 999 - 9999'),
                ui.textbox(name='textbox_icon',
                           label='With icon',
                           icon='Calendar'),
                ui.textbox(name='textbox_prefix',
                           label='With prefix',
                           prefix='http://'),
                ui.textbox(name='textbox_suffix',
                           label='With suffix',
                           suffix='@h2o.ai'),
                ui.textbox(name='textbox_placeholder',
                           label='With placeholder',
                           placeholder='I need some input'),
                ui.textbox(name='textbox_disabled_placeholder',
                           label='Disabled with placeholder',
                           disabled=True,
                           placeholder='I am disabled'),
                ui.textbox(name='textbox_multiline',
                           label='Multiline textarea',
                           multiline=True),
                ui.button(name='show_inputs', label='Submit', primary=True),
            ])
    await q.page.save()
Пример #20
0
    async def render(self, q: Q):
        """
        Render card in Wave.

        Args:
            q: Wave server
        """
        text_similarity = self.doc_1.similarity(self.doc_2)

        card = ui.form_card(
            box=self.box,
            items=[
                ui.textbox(name='input_text_1', label='Text 1', value=str(self.doc_1), multiline=True),
                ui.textbox(name='input_text_2', label='Text 2', value=str(self.doc_2), multiline=True),
                ui.buttons(
                    items=[
                        ui.button(name='compare_text', label='Compare', primary=True)
                    ]
                ),
                ui.stats(
                    items=[
                        ui.stat(
                            label='Tokens 1',
                            value=f'{len(self.doc_1)}',
                            icon='TextField',
                            icon_color=self.color
                        ),
                        ui.stat(
                            label='Tokens 2',
                            value=f'{len(self.doc_2)}'
                        )
                    ]
                ),
                ui.stats(
                    items=[
                        ui.stat(
                            label='Sentences 1',
                            value=f'{len(list(self.doc_1.sents))}',
                            icon='TextBox',
                            icon_color=self.color
                        ),
                        ui.stat(
                            label='Sentences 2',
                            value=f'{len(list(self.doc_2.sents))}'
                        )
                    ]
                ),
                ui.stats(
                    items=[
                        ui.stat(
                            label='Overall Similarity',
                            value=f'{round(text_similarity * 100)}%',
                            icon='VennDiagram',
                            icon_color=self.color
                        )
                    ]
                )
            ],
            title=self.title,
            commands=self.commands
        )

        q.page[self.name] = card