batched-skinning-model.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const { template, $, update, close } = require('./base');
  2. const { getMessageProtocolScene } = require('../utils/prop');
  3. exports.template = template;
  4. exports.$ = $;
  5. exports.update = update;
  6. exports.close = close;
  7. exports.ready = function() {
  8. const $prop = document.createElement('ui-prop');
  9. this.$.componentContainer.before($prop);
  10. const $label = document.createElement('ui-label');
  11. $label.setAttribute('slot', 'label');
  12. $label.value = 'Operation';
  13. $prop.appendChild($label);
  14. const $button = document.createElement('ui-button');
  15. $button.setAttribute('slot', 'content');
  16. $button.setAttribute('class', 'blue');
  17. $button.innerText = 'Cook';
  18. $prop.appendChild($button);
  19. $button.addEventListener('confirm', async () => {
  20. const uuids = this.dump.value.uuid.values || [this.dump.value.uuid.value];
  21. const undoID = await Editor.Message.request(getMessageProtocolScene(this.$this), 'begin-recording', uuids);
  22. for (const uuid of uuids) {
  23. await Editor.Message.request(getMessageProtocolScene(this.$this), 'execute-component-method', {
  24. uuid: uuid,
  25. name: 'cook',
  26. args: [],
  27. });
  28. }
  29. for (const uuid of uuids) {
  30. await Editor.Message.request(getMessageProtocolScene(this.$this), 'execute-component-method', {
  31. uuid: uuid,
  32. name: 'combine',
  33. args: [],
  34. });
  35. }
  36. await Editor.Message.request(getMessageProtocolScene(this.$this), 'end-recording', undoID);
  37. });
  38. };