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


TypeScript alloy.Composing類代碼示例

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


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

示例1: function

const field = function (name, placeholder) {
  const inputSpec = Memento.record(Input.sketch({
    placeholder,
    onSetValue (input, data) {
      // If the value changes, inform the container so that it can update whether the "x" is visible
      AlloyTriggers.emit(input, NativeEvents.input());
    },
    inputBehaviours: Behaviour.derive([
      Composing.config({
        find: Option.some
      }),
      Tabstopping.config({ }),
      Keying.config({
        mode: 'execution'
      })
    ]),
    selectOnFocus: false
  }));

  const buttonSpec = Memento.record(
    Button.sketch({
      dom: UiDomFactory.dom('<button class="${prefix}-input-container-x ${prefix}-icon-cancel-circle ${prefix}-icon"></button>'),
      action (button) {
        const input = inputSpec.get(button);
        Representing.setValue(input, '');
      }
    })
  );

  return {
    name,
    spec: Container.sketch({
      dom: UiDomFactory.dom('<div class="${prefix}-input-container"></div>'),
      components: [
        inputSpec.asSpec(),
        buttonSpec.asSpec()
      ],
      containerBehaviours: Behaviour.derive([
        Toggling.config({
          toggleClass: Styles.resolve('input-container-empty')
        }),
        Composing.config({
          find (comp) {
            return Option.some(inputSpec.get(comp));
          }
        }),
        AddEventsBehaviour.config(clearInputBehaviour, [
          // INVESTIGATE: Because this only happens on input,
          // it won't reset unless it has an initial value
          AlloyEvents.run(NativeEvents.input(), function (iContainer) {
            const input = inputSpec.get(iContainer);
            const val = Representing.getValue(input);
            const f = val.length > 0 ? Toggling.off : Toggling.on;
            f(iContainer);
          })
        ])
      ])
    })
  };
};
開發者ID:danielpunkass,項目名稱:tinymce,代碼行數:60,代碼來源:Inputs.ts

示例2: withRoot

 withRoot((_) => {
   const body = access.getBody();
   const bodyState = Reflecting.getState(body);
   if (bodyState.get().exists((b) => b.isTabPanel())) {
     Composing.getCurrent(body).each((tabSection) => {
       TabSection.showTab(tabSection, title);
     });
   }
 });
開發者ID:tinymce,項目名稱:tinymce,代碼行數:9,代碼來源:SilverDialogInstanceApi.ts

示例3:

const childAt = (index: number) => {
  return Composing.config({
    find: (comp: AlloyComponent) => {
      return Traverse.child(comp.element(), index).bind((element) => {
        return comp.getSystem().getByDom(element).toOption();
      });
    }
  });
};
開發者ID:tinymce,項目名稱:tinymce,代碼行數:9,代碼來源:ComposingConfigs.ts

示例4:

 getValue: (comp) => {
   const picker = memPicker.get(comp);
   const optRgbForm = Composing.getCurrent(picker);
   const optHex = optRgbForm.bind((rgbForm) => {
     const formValues = Representing.getValue(rgbForm);
     return formValues.hex as Option<string>;
   }) ;
   return optHex.map((hex) => '#' + hex).getOr('');
 },
開發者ID:tinymce,項目名稱:tinymce,代碼行數:9,代碼來源:ColorPicker.ts

示例5:

 Step.sync(() => {
   const zone = Composing.getCurrent(component).getOrDie(
     'Failed trying to get the zone from the container'
   );
   const filesValue = Representing.getValue(zone);
   Assertions.assertEq('Checking value of dropzone', [
     { name: 'image1.png' },
     { name: 'image3.jpg' }
   ], filesValue);
 })
開發者ID:tinymce,項目名稱:tinymce,代碼行數:10,代碼來源:DropzoneTest.ts

示例6: picker

 const openUrlPicker = (comp: AlloyComponent) => {
   Composing.getCurrent(comp).each((field) => {
     const urlData = Representing.getValue(field);
     optUrlPicker.each((picker) => {
       picker(urlData).get((chosenData) => {
         Representing.setValue(field, chosenData);
         AlloyTriggers.emitWith(comp, formChangeEvent, { name: spec.name });
       });
     });
   });
 };
開發者ID:tinymce,項目名稱:tinymce,代碼行數:11,代碼來源:UrlInput.ts

示例7: sAssertInitialIframeStructure

    (doc, body, gui, component, store) => {

      const frame = Composing.getCurrent(component).getOrDie(
        'Could not find internal frame field'
      );

      // TODO: Make a webdriver test re: keyboard navigation.
      return [
        sAssertInitialIframeStructure(component),
        RepresentingSteps.sSetValue('Setting to a paragraph', frame, '<p><span class="me">Me</span></p>'),
        platformNeedsSandboxing ? sAssertSandboxedIframeContent(frame) : sAssertStandardIframeContent(frame)
      ];
    },
開發者ID:tinymce,項目名稱:tinymce,代碼行數:13,代碼來源:IframeTest.ts

示例8:

 return optSlider.bind((slider) => {
   const sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);
   if (sidebarOpen) {
     const optSlotContainer = Composing.getCurrent(slider);
     return optSlotContainer.bind((slotContainer) =>
       Arr.find(SlotContainer.getSlotNames(slotContainer), (name) =>
         SlotContainer.isShowing(slotContainer, name)
       )
     );
   } else {
     return Option.none();
   }
 });
開發者ID:tinymce,項目名稱:tinymce,代碼行數:13,代碼來源:Sidebar.ts

示例9:

const getCompByName = (access: DialogAccess<any>, name: string): Option<AlloyComponent> => {
  // TODO: Add API to alloy to find the inner most component of a Composing chain.
  const root = access.getRoot();
  // This is just to avoid throwing errors if the dialog closes before this. We should take it out
  // while developing (probably), and put it back in for the real thing.
  if (root.getSystem().isConnected()) {
    const form = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());
    return Form.getField(form, name).fold(() => {
      const footer = access.getFooter();
      const footerState = Reflecting.getState(footer);
      return footerState.get().bind((f) => f.lookupByName(form, name));
    }, (comp) => {
      return Option.some(comp);
    });
  } else {
    return Option.none();
  }
};
開發者ID:tinymce,項目名稱:tinymce,代碼行數:18,代碼來源:SilverDialogInstanceApi.ts


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