當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript alloy.Menu類代碼示例

本文整理匯總了TypeScript中@ephox/alloy.Menu的典型用法代碼示例。如果您正苦於以下問題:TypeScript Menu類的具體用法?TypeScript Menu怎麽用?TypeScript Menu使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Menu類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: preprocessCollection

const forCollection = (columns: number | 'auto', initItems, hasIcons: boolean = true) => {
  return {
    dom: {
      tag: 'div',
      classes: [ 'tox-menu', 'tox-collection' ].concat(columns === 1 ? [ 'tox-collection--list' ] : [ 'tox-collection--grid' ])
    },
    components: [
      // TODO: Clean up code and test atomically
      AlloyMenu.parts().items({
        preprocess: (items) => {
          if (columns !== 'auto' && columns > 1) {
            return chunk<AlloySpec>({
              tag: 'div',
              classes: [ 'tox-collection__group' ]
            }, columns)(items);
          } else {
            return preprocessCollection(items, (item, i) => {
              return initItems[i].type === 'separator';
            });
          }
        }
      })
    ]
  };
};
開發者ID:tinymce,項目名稱:tinymce,代碼行數:25,代碼來源:MenuStructures.ts

示例2: chunk

const forSwatch = (columns: number | 'auto') => {
  return {
    dom: {
      tag: 'div',
      classes: [ 'tox-menu', 'tox-swatches-menu' ]
    },
    components: [
      {
        dom: {
          tag: 'div',
          classes: [ 'tox-swatches' ]
        },
        components: [
          AlloyMenu.parts().items({
            preprocess: columns !== 'auto' ? chunk(
              {
                tag: 'div',
                classes: [ 'tox-swatches__row' ]
              },
              columns
            ) : Fun.identity
          })
        ]
      }
    ]
  };
};
開發者ID:tinymce,項目名稱:tinymce,代碼行數:27,代碼來源:MenuStructures.ts

示例3: menuDom

export const renderWidgetMenu = (spec: WidgetMenuFoo): Partial<MenuTypes.MenuSpec> => {
  const memWidget = Memento.record(spec.widget as SimpleOrSketchSpec);
  return {
    value: spec.value,
    items: [
      {
        type: 'widget',
        data: {
          // FIX: Widgets.
          value: Id.generate('widget-id')
        },
        autofocus: true,

        // FIX: widget classes.
        dom: {
          tag: 'div'
        },
        components: [
          ItemWidget.parts().widget(
            {
              dom: {
                tag: 'div',
                classes: [ 'tox-menu-widget-js' ]
              },
              components: [ memWidget.asSpec() ],
              behaviours: Behaviour.derive([
                Keying.config({
                  mode: 'special',
                  focusIn: (comp) => {
                    memWidget.getOpt(comp).each(Keying.focusIn);
                    return Option.some(true);
                  }
                })
              ])
            }
          )
        ],
      }
    ],
    dom: menuDom(false, 1, 'normal'),
    components: [
      Menu.parts().items({ })
    ]
  };
};
開發者ID:tinymce,項目名稱:tinymce,代碼行數:45,代碼來源:MenuWidgets.ts

示例4: renderColorSwatchItem

export function renderColorSwatchItem(spec: Menu.FancyMenuItem, backstage: UiFactoryBackstage): ItemTypes.WidgetItemSpec {
  const items = ColorSwatch.getColors(backstage.colorinput.getColors(), backstage.colorinput.hasCustomColors());
  const columns = backstage.colorinput.getColorCols();
  const presets = 'color';

  const menuSpec = createPartialChoiceMenu(
    Id.generate('menu-value'),
    items,
    (value) => {
      spec.onAction({ value });
    },
    columns,
    presets,
    ItemResponse.CLOSE_ON_EXECUTE,
    () => false,
    backstage.shared.providers
  );

  const widgetSpec = Merger.deepMerge({
    ...menuSpec,
    markers: MenuParts.markers(presets),
    movement: deriveMenuMovement(columns, presets)
  });

  return {
    type: 'widget',
    data: { value: Id.generate('widget-id')},
    dom: {
      tag: 'div',
      classes: [ 'tox-fancymenuitem' ],
    },
    autofocus: true,
    components: [
      ItemWidget.parts().widget(AlloyMenu.sketch(widgetSpec))
    ]
  };
}
開發者ID:tinymce,項目名稱:tinymce,代碼行數:37,代碼來源:ColorSwatchItem.ts

示例5: getCombinedItems

        lookupInfo.lookupData.then((lookupData) => {
          const combinedItems = getCombinedItems(lookupInfo.triggerChar, lookupData);

          // Only open the autocompleter if there are items to show
          if (combinedItems.length > 0) {
            const columns: Types.ColumnTypes = Options.findMap(lookupData, (ld) => Option.from(ld.columns)).getOr(1);
            InlineView.showAt(
              autocompleter,
              {
                anchor: 'selection',
                root: Element.fromDom(editor.getBody()),
                getSelection: () => {
                  return Option.some({
                    start: () => Element.fromDom(lookupInfo.range.startContainer),
                    soffset: () => lookupInfo.range.startOffset,
                    finish: () => Element.fromDom(lookupInfo.range.endContainer),
                    foffset: () => lookupInfo.range.endOffset
                  });
                }
              },
              Menu.sketch(
                createMenuFrom(
                  createPartialMenuWithAlloyItems('autocompleter-value', true, combinedItems, columns, 'normal'),
                  columns,
                  FocusMode.ContentFocus,
                  // Use the constant.
                  'normal'
                )
              )
            );

            InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);
          } else {
            closeIfNecessary();
          }
        });
開發者ID:tinymce,項目名稱:tinymce,代碼行數:36,代碼來源:Autocompleter.ts

示例6: getMenuClasses

  };
};

const dom = (hasIcons: boolean, columns: Types.ColumnTypes, presets: Types.PresetTypes) => {
  const menuClasses = getMenuClasses(presets);
  return {
    tag: 'div',
    classes: Arr.flatten([
      [ menuClasses.menu, `tox-menu-${columns}-column` ],
      hasIcons ? [ menuClasses.hasIcons ] : [ ]
    ])
  };
};

const components = [
  AlloyMenu.parts().items({ })
];

// NOTE: Up to here.
const part = (hasIcons: boolean, columns: Types.ColumnTypes, presets: Types.PresetTypes): Partial<TieredMenuTypes.TieredMenuSpec> => {
  const menuClasses = getMenuClasses(presets);
  const d = {
    tag: 'div',
    classes: Arr.flatten([
      [ menuClasses.tieredMenu ]
    ])
  };

  return {
    dom: d,
    markers: markers(presets)
開發者ID:tinymce,項目名稱:tinymce,代碼行數:31,代碼來源:MenuParts.ts

示例7: function

const makeMenu = function (value, items, memMenuThunk, collapsable) {
  return {
    value,
    dom: {
      tag: 'div'
    },
    components: [
      Button.sketch({
        dom: {
          tag: 'div',
          classes: [ Styles.resolve('styles-collapser') ]
        },
        components: collapsable ? [
          {
            dom: {
              tag: 'span',
              classes: [ Styles.resolve('styles-collapse-icon') ]
            }
          },
          GuiFactory.text(value)
        ] : [ GuiFactory.text(value) ],
        action (item) {
          if (collapsable) {
            const comp = memMenuThunk().get(item);
            TieredMenu.collapseMenu(comp);
          }
        }
      }),
      {
        dom: {
          tag: 'div',
          classes: [ Styles.resolve('styles-menu-items-container') ]
        },
        components: [
          Menu.parts().items({ })
        ],

        behaviours: Behaviour.derive([
          AddEventsBehaviour.config('adhoc-scrollable-menu', [
            AlloyEvents.runOnAttached(function (component, simulatedEvent) {
              Css.set(component.element(), 'overflow-y', 'auto');
              Css.set(component.element(), '-webkit-overflow-scrolling', 'touch');
              Scrollable.register(component.element());
            }),

            AlloyEvents.runOnDetached(function (component) {
              Css.remove(component.element(), 'overflow-y');
              Css.remove(component.element(), '-webkit-overflow-scrolling');
              Scrollable.deregister(component.element());
            })
          ])
        ])
      }
    ],
    items,
    menuBehaviours: Behaviour.derive([
      Transitioning.config({
        initialState: 'after',
        routes: Transitioning.createTristate('before', 'current', 'after', {
          transition: {
            property: 'transform',
            transitionClass: 'transitioning'
          }
        })
      })
    ])
  };
};
開發者ID:abstask,項目名稱:tinymce,代碼行數:68,代碼來源:StylesMenu.ts


注:本文中的@ephox/alloy.Menu類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。