@innovastudio/contentbuilder 1.4.95 → 1.4.96

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.4.95",
4
+ "version": "1.4.96",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -50085,6 +50085,8 @@ class Image$1 {
50085
50085
  if (this.builder.opts.onImageSelectClick || this.builder.opts.imageselect) {
50086
50086
  btnOpenAsset.style.display = 'block';
50087
50087
  dom.addEventListener(btnOpenAsset, 'click', () => {
50088
+ let img = this.builder.activeImage;
50089
+ let currentSrc = img ? img.getAttribute('src') : '';
50088
50090
  this.builder.openImageSelect(src => {
50089
50091
  this.builder.uo.saveForUndo();
50090
50092
  let img = this.builder.activeImage;
@@ -50105,7 +50107,7 @@ class Image$1 {
50105
50107
 
50106
50108
  //Trigger Render event
50107
50109
  this.builder.opts.onRender();
50108
- });
50110
+ }, currentSrc);
50109
50111
  });
50110
50112
  } else {
50111
50113
  btnOpenAsset.style.display = 'none';
@@ -60112,6 +60114,8 @@ class ColumnTool {
60112
60114
  const inpSrc = this.cellSettings.querySelector('.input-src');
60113
60115
  elm = this.divCellClick.querySelector('.input-select');
60114
60116
  if (elm) dom.addEventListener(elm, 'click', () => {
60117
+ //TODO: Simplify using openAsset
60118
+
60115
60119
  //---default
60116
60120
  this.builder.targetInput = inpSrc; // used by selectAsset() (see contentbuilder.js)
60117
60121
  this.builder.targetCallback = () => {
@@ -80938,12 +80942,12 @@ class ContentBuilder {
80938
80942
  return this.targetAssetType; // not used yet
80939
80943
  }
80940
80944
 
80941
- openImageSelect(callback) {
80945
+ openImageSelect(callback, defaultValue) {
80942
80946
  const inpUrl = document.createElement('input');
80943
80947
 
80944
80948
  // dummy button (for the openAsset() method, for the old Asset Manager. Not needed for the new.)
80945
80949
  const btn = document.createElement('button');
80946
- this.openAsset(inpUrl, 'image', btn);
80950
+ this.openAsset(inpUrl, 'image', btn, defaultValue);
80947
80951
  let out = s => this.util.out(s);
80948
80952
  const desc = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');
80949
80953
  Object.defineProperty(inpUrl, 'value', {
@@ -81036,7 +81040,9 @@ class ContentBuilder {
81036
81040
  this.targetAssetType = targetAssetType;
81037
81041
  }
81038
81042
  }
81039
- openAsset(targetInput, targetAssetType, theTrigger) {
81043
+ openAsset(targetInput, targetAssetType, theTrigger, defaultValue) {
81044
+ let iframe;
81045
+ let modal;
81040
81046
  if (targetAssetType === 'media' && (this.opts.onMediaSelectClick || this.opts.onImageSelectClick)) {
81041
81047
  if (this.opts.onMediaSelectClick) {
81042
81048
  this.opts.onMediaSelectClick({
@@ -81070,8 +81076,6 @@ class ContentBuilder {
81070
81076
  theTrigger: theTrigger
81071
81077
  });
81072
81078
  } else {
81073
- let iframe;
81074
- let modal;
81075
81079
  if (targetAssetType === 'media') {
81076
81080
  modal = this.builderStuff.querySelector('.is-modal.mediaselect');
81077
81081
  iframe = modal.querySelector('iframe');
@@ -81100,6 +81104,23 @@ class ContentBuilder {
81100
81104
  this.targetCallback = null;
81101
81105
  this.targetAssetType = targetAssetType;
81102
81106
  }
81107
+ if (!defaultValue) defaultValue = '';
81108
+ if (targetInput && targetInput.value) {
81109
+ defaultValue = targetInput.value;
81110
+ }
81111
+ if (this.onAssetOpen) {
81112
+ if (iframe) {
81113
+ if (iframe.contentWindow.document.body.innerHTML !== '') {
81114
+ this.onAssetOpen(defaultValue, iframe.contentWindow);
81115
+ } else {
81116
+ iframe.addEventListener('load', () => {
81117
+ this.onAssetOpen(defaultValue, iframe.contentWindow);
81118
+ });
81119
+ }
81120
+ } else {
81121
+ this.onAssetOpen(defaultValue, iframe);
81122
+ }
81123
+ }
81103
81124
  }
81104
81125
 
81105
81126
  // Grid