@whitesev/pops 1.6.4 → 1.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/index.amd.js +111 -89
  2. package/dist/index.amd.js.map +1 -1
  3. package/dist/index.cjs.js +111 -89
  4. package/dist/index.cjs.js.map +1 -1
  5. package/dist/index.esm.js +111 -89
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.iife.js +111 -89
  8. package/dist/index.iife.js.map +1 -1
  9. package/dist/index.system.js +111 -89
  10. package/dist/index.system.js.map +1 -1
  11. package/dist/index.umd.js +111 -89
  12. package/dist/index.umd.js.map +1 -1
  13. package/dist/types/src/Pops.d.ts +14 -13
  14. package/dist/types/src/components/panel/PanelHandleContentDetails.d.ts +31 -15
  15. package/dist/types/src/components/panel/buttonType.d.ts +6 -2
  16. package/dist/types/src/components/panel/deepMenuType.d.ts +6 -2
  17. package/dist/types/src/components/panel/formsType.d.ts +6 -2
  18. package/dist/types/src/components/panel/indexType.d.ts +22 -3
  19. package/dist/types/src/components/panel/inputType.d.ts +6 -2
  20. package/dist/types/src/components/panel/ownType.d.ts +3 -1
  21. package/dist/types/src/components/panel/selectMultipleType.d.ts +6 -2
  22. package/dist/types/src/components/panel/selectType.d.ts +6 -2
  23. package/dist/types/src/components/panel/sliderType.d.ts +6 -2
  24. package/dist/types/src/components/panel/switchType.d.ts +6 -2
  25. package/dist/types/src/components/panel/textareaType.d.ts +6 -2
  26. package/package.json +1 -1
  27. package/src/components/panel/PanelHandleContentDetails.ts +123 -95
  28. package/src/components/panel/buttonType.ts +6 -2
  29. package/src/components/panel/deepMenuType.ts +6 -2
  30. package/src/components/panel/formsType.ts +6 -2
  31. package/src/components/panel/indexType.ts +22 -3
  32. package/src/components/panel/inputType.ts +6 -2
  33. package/src/components/panel/ownType.ts +3 -1
  34. package/src/components/panel/selectMultipleType.ts +6 -2
  35. package/src/components/panel/selectType.ts +6 -2
  36. package/src/components/panel/sliderType.ts +6 -2
  37. package/src/components/panel/switchType.ts +6 -2
  38. package/src/components/panel/textareaType.ts +6 -2
package/dist/index.amd.js CHANGED
@@ -7282,11 +7282,21 @@ define((function () { 'use strict';
7282
7282
  * 右侧主内容的ul容器
7283
7283
  */
7284
7284
  sectionContainerULElement: null,
7285
+ /**
7286
+ * 元素
7287
+ */
7285
7288
  $el: {
7289
+ /** 内容 */
7286
7290
  $content: null,
7291
+ /** 左侧容器 */
7287
7292
  $contentAside: null,
7293
+ /** 右侧容器 */
7288
7294
  $contentSectionContainer: null,
7289
7295
  },
7296
+ /**
7297
+ * 初始化
7298
+ * @param details
7299
+ */
7290
7300
  init(details) {
7291
7301
  // @ts-ignore
7292
7302
  this.$el = null;
@@ -7300,40 +7310,48 @@ define((function () { 'use strict';
7300
7310
  this.sectionContainerULElement =
7301
7311
  this.$el.$contentSectionContainer.querySelectorAll("ul")[1];
7302
7312
  /**
7303
- * 默认点击的左侧容器
7313
+ * 默认点击的左侧容器项
7304
7314
  */
7305
- let asideDefaultItemElement = null;
7315
+ let $asideDefaultItemElement = null;
7316
+ /** 是否滚动到默认位置(第一个项) */
7306
7317
  let isScrollToDefaultView = false;
7307
- details.config.content.forEach((asideItem) => {
7308
- let asideLiElement = this.getAsideItem(asideItem);
7309
- this.setAsideItemClickEvent(asideLiElement, asideItem);
7310
- this.asideULElement.appendChild(asideLiElement);
7311
- if (asideDefaultItemElement == null) {
7318
+ details.config.content.forEach((asideItemConfig) => {
7319
+ let $asideLiElement = this.createAsideItem(asideItemConfig);
7320
+ this.setAsideItemClickEvent($asideLiElement, asideItemConfig);
7321
+ this.asideULElement.appendChild($asideLiElement);
7322
+ if ($asideDefaultItemElement == null) {
7312
7323
  let flag = false;
7313
- if (typeof asideItem.isDefault === "function") {
7314
- flag = Boolean(asideItem.isDefault());
7324
+ if (typeof asideItemConfig.isDefault === "function") {
7325
+ flag = Boolean(asideItemConfig.isDefault());
7315
7326
  }
7316
7327
  else {
7317
- flag = Boolean(asideItem.isDefault);
7328
+ flag = Boolean(asideItemConfig.isDefault);
7318
7329
  }
7319
7330
  if (flag) {
7320
- asideDefaultItemElement = asideLiElement;
7321
- isScrollToDefaultView = Boolean(asideItem.scrollToDefaultView);
7331
+ $asideDefaultItemElement = $asideLiElement;
7332
+ isScrollToDefaultView = Boolean(asideItemConfig.scrollToDefaultView);
7322
7333
  }
7323
7334
  }
7335
+ if (typeof asideItemConfig.afterRender === "function") {
7336
+ // 执行渲染完毕的回调
7337
+ asideItemConfig.afterRender({
7338
+ asideConfig: asideItemConfig,
7339
+ $asideLiElement: $asideLiElement,
7340
+ });
7341
+ }
7324
7342
  });
7325
7343
  /* 点击左侧列表 */
7326
- if (asideDefaultItemElement == null &&
7344
+ if ($asideDefaultItemElement == null &&
7327
7345
  this.asideULElement.children.length) {
7328
7346
  /* 默认第一个 */
7329
- asideDefaultItemElement = this.asideULElement
7347
+ $asideDefaultItemElement = this.asideULElement
7330
7348
  .children[0];
7331
7349
  }
7332
- if (asideDefaultItemElement) {
7350
+ if ($asideDefaultItemElement) {
7333
7351
  /* 点击选择的那一项 */
7334
- asideDefaultItemElement.click();
7352
+ $asideDefaultItemElement.click();
7335
7353
  if (isScrollToDefaultView) {
7336
- asideDefaultItemElement?.scrollIntoView();
7354
+ $asideDefaultItemElement?.scrollIntoView();
7337
7355
  }
7338
7356
  }
7339
7357
  else {
@@ -7372,13 +7390,13 @@ define((function () { 'use strict';
7372
7390
  * @param element
7373
7391
  * @param attributes
7374
7392
  */
7375
- addElementAttributes(element, attributes) {
7393
+ setElementAttributes(element, attributes) {
7376
7394
  if (attributes == null) {
7377
7395
  return;
7378
7396
  }
7379
7397
  if (Array.isArray(attributes)) {
7380
7398
  attributes.forEach((attrObject) => {
7381
- this.addElementAttributes(element, attrObject);
7399
+ this.setElementAttributes(element, attrObject);
7382
7400
  });
7383
7401
  }
7384
7402
  else {
@@ -7397,34 +7415,58 @@ define((function () { 'use strict';
7397
7415
  return;
7398
7416
  }
7399
7417
  Object.keys(props).forEach((propName) => {
7400
- element[propName] = props[propName];
7418
+ Reflect.set(element, propName, props[propName]);
7401
7419
  });
7402
7420
  },
7403
7421
  /**
7404
- * 获取左侧容器元素<li>
7422
+ * 为元素设置classname
7423
+ * @param element
7424
+ * @param className
7425
+ */
7426
+ setElementClassName(element, className) {
7427
+ if (className == null) {
7428
+ return;
7429
+ }
7430
+ if (typeof className === "function") {
7431
+ className = className();
7432
+ }
7433
+ if (typeof className === "string") {
7434
+ let splitClassName = className.split(" ");
7435
+ splitClassName.forEach((classNameStr) => {
7436
+ element.classList.add(classNameStr);
7437
+ });
7438
+ }
7439
+ else if (Array.isArray(className)) {
7440
+ className.forEach((classNameStr) => {
7441
+ this.setElementClassName(element, classNameStr);
7442
+ });
7443
+ }
7444
+ },
7445
+ /**
7446
+ * 创建左侧容器元素<li>
7405
7447
  * @param asideConfig
7406
7448
  */
7407
- getAsideItem(asideConfig) {
7449
+ createAsideItem(asideConfig) {
7408
7450
  let liElement = document.createElement("li");
7409
7451
  liElement.id = asideConfig.id;
7410
7452
  liElement["__forms__"] = asideConfig.forms;
7411
7453
  liElement.innerHTML = asideConfig.title;
7412
- this.addElementAttributes(liElement, asideConfig.attributes);
7454
+ /* 处理className */
7455
+ this.setElementClassName(liElement, asideConfig.className);
7456
+ this.setElementAttributes(liElement, asideConfig.attributes);
7413
7457
  this.setElementProps(liElement, asideConfig.props);
7414
7458
  return liElement;
7415
7459
  },
7416
7460
  /**
7417
- * 获取中间容器的元素<li>
7461
+ * 创建中间容器的元素<li>
7418
7462
  * type ==> switch
7419
7463
  * @param formConfig
7420
7464
  */
7421
- getSectionContainerItem_switch(formConfig) {
7465
+ createSectionContainerItem_switch(formConfig) {
7422
7466
  let liElement = document.createElement("li");
7423
7467
  liElement["__formConfig__"] = formConfig;
7424
- if (formConfig.className) {
7425
- liElement.className = formConfig.className;
7426
- }
7427
- this.addElementAttributes(liElement, formConfig.attributes);
7468
+ this.setElementClassName(liElement, formConfig.className);
7469
+ this.setElementAttributes(liElement, formConfig.attributes);
7428
7470
  this.setElementProps(liElement, formConfig.props);
7429
7471
  /* 左边底部的描述的文字 */
7430
7472
  let leftDescriptionText = "";
@@ -7521,13 +7563,11 @@ define((function () { 'use strict';
7521
7563
  * type ==> slider
7522
7564
  * @param formConfig
7523
7565
  */
7524
- getSectionContainerItem_slider(formConfig) {
7566
+ createSectionContainerItem_slider(formConfig) {
7525
7567
  let liElement = document.createElement("li");
7526
7568
  liElement["__formConfig__"] = formConfig;
7527
- if (formConfig.className) {
7528
- liElement.className = formConfig.className;
7529
- }
7530
- this.addElementAttributes(liElement, formConfig.attributes);
7569
+ this.setElementClassName(liElement, formConfig.className);
7570
+ this.setElementAttributes(liElement, formConfig.attributes);
7531
7571
  this.setElementProps(liElement, formConfig.props);
7532
7572
  /* 左边底部的描述的文字 */
7533
7573
  let leftDescriptionText = "";
@@ -7587,13 +7627,11 @@ define((function () { 'use strict';
7587
7627
  * type ==> slider
7588
7628
  * @param formConfig
7589
7629
  */
7590
- getSectionContainerItem_slider_new(formConfig) {
7630
+ createSectionContainerItem_slider_new(formConfig) {
7591
7631
  let liElement = document.createElement("li");
7592
7632
  liElement["__formConfig__"] = formConfig;
7593
- if (formConfig.className) {
7594
- liElement.className = formConfig.className;
7595
- }
7596
- this.addElementAttributes(liElement, formConfig.attributes);
7633
+ this.setElementClassName(liElement, formConfig.className);
7634
+ this.setElementAttributes(liElement, formConfig.attributes);
7597
7635
  this.setElementProps(liElement, formConfig.props);
7598
7636
  /* 左边底部的描述的文字 */
7599
7637
  let leftDescriptionText = "";
@@ -8144,13 +8182,11 @@ define((function () { 'use strict';
8144
8182
  * type ==> input
8145
8183
  * @param formConfig
8146
8184
  */
8147
- getSectionContainerItem_input(formConfig) {
8185
+ createSectionContainerItem_input(formConfig) {
8148
8186
  let liElement = document.createElement("li");
8149
8187
  liElement["__formConfig__"] = formConfig;
8150
- if (formConfig.className) {
8151
- liElement.className = formConfig.className;
8152
- }
8153
- this.addElementAttributes(liElement, formConfig.attributes);
8188
+ this.setElementClassName(liElement, formConfig.className);
8189
+ this.setElementAttributes(liElement, formConfig.attributes);
8154
8190
  this.setElementProps(liElement, formConfig.props);
8155
8191
  let inputType = "text";
8156
8192
  if (formConfig.isPassword) {
@@ -8348,13 +8384,11 @@ define((function () { 'use strict';
8348
8384
  * type ==> textarea
8349
8385
  * @param formConfig
8350
8386
  */
8351
- getSectionContainerItem_textarea(formConfig) {
8387
+ createSectionContainerItem_textarea(formConfig) {
8352
8388
  let liElement = document.createElement("li");
8353
8389
  liElement["__formConfig__"] = formConfig;
8354
- if (formConfig.className) {
8355
- liElement.className = formConfig.className;
8356
- }
8357
- this.addElementAttributes(liElement, formConfig.attributes);
8390
+ this.setElementClassName(liElement, formConfig.className);
8391
+ this.setElementAttributes(liElement, formConfig.attributes);
8358
8392
  this.setElementProps(liElement, formConfig.props);
8359
8393
  /* 左边底部的描述的文字 */
8360
8394
  let leftDescriptionText = "";
@@ -8423,13 +8457,11 @@ define((function () { 'use strict';
8423
8457
  * type ==> select
8424
8458
  * @param formConfig
8425
8459
  */
8426
- getSectionContainerItem_select(formConfig) {
8460
+ createSectionContainerItem_select(formConfig) {
8427
8461
  let liElement = document.createElement("li");
8428
8462
  liElement["__formConfig__"] = formConfig;
8429
- if (formConfig.className) {
8430
- liElement.className = formConfig.className;
8431
- }
8432
- this.addElementAttributes(liElement, formConfig.attributes);
8463
+ this.setElementClassName(liElement, formConfig.className);
8464
+ this.setElementAttributes(liElement, formConfig.attributes);
8433
8465
  this.setElementProps(liElement, formConfig.props);
8434
8466
  /* 左边底部的描述的文字 */
8435
8467
  let leftDescriptionText = "";
@@ -8576,13 +8608,11 @@ define((function () { 'use strict';
8576
8608
  * type ==> select-multiple
8577
8609
  * @param formConfig
8578
8610
  */
8579
- getSectionContainerItem_select_multiple_new(formConfig) {
8611
+ createSectionContainerItem_select_multiple_new(formConfig) {
8580
8612
  let liElement = document.createElement("li");
8581
8613
  Reflect.set(liElement, "__formConfig__", formConfig);
8582
- if (formConfig.className) {
8583
- liElement.className = formConfig.className;
8584
- }
8585
- this.addElementAttributes(liElement, formConfig.attributes);
8614
+ this.setElementClassName(liElement, formConfig.className);
8615
+ this.setElementAttributes(liElement, formConfig.attributes);
8586
8616
  this.setElementProps(liElement, formConfig.props);
8587
8617
  /* 左边底部的描述的文字 */
8588
8618
  let leftDescriptionText = "";
@@ -9106,13 +9136,11 @@ define((function () { 'use strict';
9106
9136
  * type ==> button
9107
9137
  * @param formConfig
9108
9138
  */
9109
- getSectionContainerItem_button(formConfig) {
9139
+ createSectionContainerItem_button(formConfig) {
9110
9140
  let liElement = document.createElement("li");
9111
9141
  liElement["__formConfig__"] = formConfig;
9112
- if (formConfig.className) {
9113
- liElement.className = formConfig.className;
9114
- }
9115
- this.addElementAttributes(liElement, formConfig.attributes);
9142
+ this.setElementClassName(liElement, formConfig.className);
9143
+ this.setElementAttributes(liElement, formConfig.attributes);
9116
9144
  this.setElementProps(liElement, formConfig.props);
9117
9145
  /* 左边底部的描述的文字 */
9118
9146
  let leftDescriptionText = "";
@@ -9257,16 +9285,14 @@ define((function () { 'use strict';
9257
9285
  * 获取深层容器的元素<li>
9258
9286
  * @param formConfig
9259
9287
  */
9260
- getSectionContainerItem_deepMenu(formConfig) {
9288
+ createSectionContainerItem_deepMenu(formConfig) {
9261
9289
  let that = this;
9262
9290
  let liElement = document.createElement("li");
9263
9291
  liElement.classList.add("pops-panel-deepMenu-nav-item");
9264
9292
  liElement["__formConfig__"] = formConfig;
9265
- if (formConfig.className) {
9266
- liElement.classList.add(formConfig.className);
9267
- }
9293
+ this.setElementClassName(liElement, formConfig.className);
9268
9294
  // 设置属性
9269
- this.addElementAttributes(liElement, formConfig.attributes);
9295
+ this.setElementAttributes(liElement, formConfig.attributes);
9270
9296
  // 设置元素上的属性
9271
9297
  this.setElementProps(liElement, formConfig.props);
9272
9298
  /* 左边底部的描述的文字 */
@@ -9328,10 +9354,8 @@ define((function () { 'use strict';
9328
9354
  formHeaderDivElement.innerHTML = formItemConfig["text"];
9329
9355
  /* 加进容器内 */
9330
9356
  formContainerListElement.appendChild(formHeaderDivElement);
9331
- if (formItemConfig.className) {
9332
- popsDOMUtils.addClassName(formContainerListElement, formItemConfig.className);
9333
- }
9334
- that.addElementAttributes(formContainerListElement, formItemConfig.attributes);
9357
+ that.setElementClassName(formContainerListElement, formItemConfig.className);
9358
+ that.setElementAttributes(formContainerListElement, formItemConfig.attributes);
9335
9359
  that.setElementProps(formContainerListElement, formItemConfig.props);
9336
9360
  childForms.forEach((childFormConfig) => {
9337
9361
  that.uListContainerAddItem(childFormConfig, {
@@ -9430,7 +9454,7 @@ define((function () { 'use strict';
9430
9454
  * type ===> own
9431
9455
  * @param formConfig
9432
9456
  */
9433
- getSectionContainerItem_own(formConfig) {
9457
+ createSectionContainerItem_own(formConfig) {
9434
9458
  let liElement = document.createElement("li");
9435
9459
  liElement["__formConfig__"] = formConfig;
9436
9460
  if (formConfig.className) {
@@ -9443,35 +9467,35 @@ define((function () { 'use strict';
9443
9467
  * 获取中间容器的元素<li>
9444
9468
  * @param formConfig
9445
9469
  */
9446
- getSectionContainerItem(formConfig) {
9470
+ createSectionContainerItem(formConfig) {
9447
9471
  /** 配置项的类型 */
9448
9472
  let formType = formConfig["type"];
9449
9473
  if (formType === "switch") {
9450
- return this.getSectionContainerItem_switch(formConfig);
9474
+ return this.createSectionContainerItem_switch(formConfig);
9451
9475
  }
9452
9476
  else if (formType === "slider") {
9453
- return this.getSectionContainerItem_slider_new(formConfig);
9477
+ return this.createSectionContainerItem_slider_new(formConfig);
9454
9478
  }
9455
9479
  else if (formType === "input") {
9456
- return this.getSectionContainerItem_input(formConfig);
9480
+ return this.createSectionContainerItem_input(formConfig);
9457
9481
  }
9458
9482
  else if (formType === "textarea") {
9459
- return this.getSectionContainerItem_textarea(formConfig);
9483
+ return this.createSectionContainerItem_textarea(formConfig);
9460
9484
  }
9461
9485
  else if (formType === "select") {
9462
- return this.getSectionContainerItem_select(formConfig);
9486
+ return this.createSectionContainerItem_select(formConfig);
9463
9487
  }
9464
9488
  else if (formType === "select-multiple") {
9465
- return this.getSectionContainerItem_select_multiple_new(formConfig);
9489
+ return this.createSectionContainerItem_select_multiple_new(formConfig);
9466
9490
  }
9467
9491
  else if (formType === "button") {
9468
- return this.getSectionContainerItem_button(formConfig);
9492
+ return this.createSectionContainerItem_button(formConfig);
9469
9493
  }
9470
9494
  else if (formType === "deepMenu") {
9471
- return this.getSectionContainerItem_deepMenu(formConfig);
9495
+ return this.createSectionContainerItem_deepMenu(formConfig);
9472
9496
  }
9473
9497
  else if (formType === "own") {
9474
- return this.getSectionContainerItem_own(formConfig);
9498
+ return this.createSectionContainerItem_own(formConfig);
9475
9499
  }
9476
9500
  else {
9477
9501
  console.error("尚未实现的type类型", formConfig);
@@ -9498,10 +9522,8 @@ define((function () { 'use strict';
9498
9522
  formHeaderDivElement.innerHTML = __formConfig_forms["text"];
9499
9523
  /* 加进容器内 */
9500
9524
  formContainerListElement.appendChild(formHeaderDivElement);
9501
- if (__formConfig_forms.className) {
9502
- popsDOMUtils.addClassName(formContainerListElement, __formConfig_forms.className);
9503
- }
9504
- that.addElementAttributes(formContainerListElement, formConfig.attributes);
9525
+ that.setElementClassName(formContainerListElement, formConfig.className);
9526
+ that.setElementAttributes(formContainerListElement, formConfig.attributes);
9505
9527
  that.setElementProps(formContainerListElement, formConfig.props);
9506
9528
  childForms.forEach((childFormConfig) => {
9507
9529
  that.uListContainerAddItem(childFormConfig, {
@@ -9527,7 +9549,7 @@ define((function () { 'use strict';
9527
9549
  * @param containerOptions
9528
9550
  */
9529
9551
  uListContainerAddItem(formConfig, containerOptions) {
9530
- let itemLiElement = this.getSectionContainerItem(formConfig);
9552
+ let itemLiElement = this.createSectionContainerItem(formConfig);
9531
9553
  if (itemLiElement) {
9532
9554
  containerOptions["ulElement"].appendChild(itemLiElement);
9533
9555
  }