prefab.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 'use strict';
  2. const { updateElementReadonly, updateElementInvalid } = require('../utils/assets');
  3. exports.template = /* html */`
  4. <section class="asset-scene">
  5. <ui-prop>
  6. <ui-label slot="label" value="Persistent"></ui-label>
  7. <ui-checkbox slot="content" class="persistent-checkbox"></ui-checkbox>
  8. </ui-prop>
  9. </section>`;
  10. exports.$ = {
  11. container: '.asset-scene',
  12. persistentCheckbox: '.persistent-checkbox',
  13. };
  14. exports.style = /* css */`
  15. .asset-scene {
  16. padding-right: 4px;
  17. }
  18. `;
  19. exports.ready = function() {
  20. const panel = this;
  21. panel.$.persistentCheckbox.addEventListener('confirm', (event) => {
  22. panel.metaList.forEach((meta) => {
  23. meta.userData.persistent = event.target.value;
  24. });
  25. panel.dispatch('change');
  26. panel.dispatch('snapshot');
  27. });
  28. };
  29. exports.update = function(assetList, metaList) {
  30. const panel = this;
  31. panel.assetList = assetList;
  32. panel.metaList = metaList;
  33. panel.asset = assetList[0];
  34. panel.meta = metaList[0];
  35. panel.$.persistentCheckbox.value = panel.meta.userData.persistent;
  36. updateElementInvalid.call(panel, panel.$.persistentCheckbox, 'persistent');
  37. updateElementReadonly.call(panel, panel.$.persistentCheckbox);
  38. };