@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
@@ -7285,11 +7285,21 @@ System.register('pops', [], (function (exports) {
7285
7285
  * 右侧主内容的ul容器
7286
7286
  */
7287
7287
  sectionContainerULElement: null,
7288
+ /**
7289
+ * 元素
7290
+ */
7288
7291
  $el: {
7292
+ /** 内容 */
7289
7293
  $content: null,
7294
+ /** 左侧容器 */
7290
7295
  $contentAside: null,
7296
+ /** 右侧容器 */
7291
7297
  $contentSectionContainer: null,
7292
7298
  },
7299
+ /**
7300
+ * 初始化
7301
+ * @param details
7302
+ */
7293
7303
  init(details) {
7294
7304
  // @ts-ignore
7295
7305
  this.$el = null;
@@ -7303,40 +7313,48 @@ System.register('pops', [], (function (exports) {
7303
7313
  this.sectionContainerULElement =
7304
7314
  this.$el.$contentSectionContainer.querySelectorAll("ul")[1];
7305
7315
  /**
7306
- * 默认点击的左侧容器
7316
+ * 默认点击的左侧容器项
7307
7317
  */
7308
- let asideDefaultItemElement = null;
7318
+ let $asideDefaultItemElement = null;
7319
+ /** 是否滚动到默认位置(第一个项) */
7309
7320
  let isScrollToDefaultView = false;
7310
- details.config.content.forEach((asideItem) => {
7311
- let asideLiElement = this.getAsideItem(asideItem);
7312
- this.setAsideItemClickEvent(asideLiElement, asideItem);
7313
- this.asideULElement.appendChild(asideLiElement);
7314
- if (asideDefaultItemElement == null) {
7321
+ details.config.content.forEach((asideItemConfig) => {
7322
+ let $asideLiElement = this.createAsideItem(asideItemConfig);
7323
+ this.setAsideItemClickEvent($asideLiElement, asideItemConfig);
7324
+ this.asideULElement.appendChild($asideLiElement);
7325
+ if ($asideDefaultItemElement == null) {
7315
7326
  let flag = false;
7316
- if (typeof asideItem.isDefault === "function") {
7317
- flag = Boolean(asideItem.isDefault());
7327
+ if (typeof asideItemConfig.isDefault === "function") {
7328
+ flag = Boolean(asideItemConfig.isDefault());
7318
7329
  }
7319
7330
  else {
7320
- flag = Boolean(asideItem.isDefault);
7331
+ flag = Boolean(asideItemConfig.isDefault);
7321
7332
  }
7322
7333
  if (flag) {
7323
- asideDefaultItemElement = asideLiElement;
7324
- isScrollToDefaultView = Boolean(asideItem.scrollToDefaultView);
7334
+ $asideDefaultItemElement = $asideLiElement;
7335
+ isScrollToDefaultView = Boolean(asideItemConfig.scrollToDefaultView);
7325
7336
  }
7326
7337
  }
7338
+ if (typeof asideItemConfig.afterRender === "function") {
7339
+ // 执行渲染完毕的回调
7340
+ asideItemConfig.afterRender({
7341
+ asideConfig: asideItemConfig,
7342
+ $asideLiElement: $asideLiElement,
7343
+ });
7344
+ }
7327
7345
  });
7328
7346
  /* 点击左侧列表 */
7329
- if (asideDefaultItemElement == null &&
7347
+ if ($asideDefaultItemElement == null &&
7330
7348
  this.asideULElement.children.length) {
7331
7349
  /* 默认第一个 */
7332
- asideDefaultItemElement = this.asideULElement
7350
+ $asideDefaultItemElement = this.asideULElement
7333
7351
  .children[0];
7334
7352
  }
7335
- if (asideDefaultItemElement) {
7353
+ if ($asideDefaultItemElement) {
7336
7354
  /* 点击选择的那一项 */
7337
- asideDefaultItemElement.click();
7355
+ $asideDefaultItemElement.click();
7338
7356
  if (isScrollToDefaultView) {
7339
- asideDefaultItemElement?.scrollIntoView();
7357
+ $asideDefaultItemElement?.scrollIntoView();
7340
7358
  }
7341
7359
  }
7342
7360
  else {
@@ -7375,13 +7393,13 @@ System.register('pops', [], (function (exports) {
7375
7393
  * @param element
7376
7394
  * @param attributes
7377
7395
  */
7378
- addElementAttributes(element, attributes) {
7396
+ setElementAttributes(element, attributes) {
7379
7397
  if (attributes == null) {
7380
7398
  return;
7381
7399
  }
7382
7400
  if (Array.isArray(attributes)) {
7383
7401
  attributes.forEach((attrObject) => {
7384
- this.addElementAttributes(element, attrObject);
7402
+ this.setElementAttributes(element, attrObject);
7385
7403
  });
7386
7404
  }
7387
7405
  else {
@@ -7400,34 +7418,58 @@ System.register('pops', [], (function (exports) {
7400
7418
  return;
7401
7419
  }
7402
7420
  Object.keys(props).forEach((propName) => {
7403
- element[propName] = props[propName];
7421
+ Reflect.set(element, propName, props[propName]);
7404
7422
  });
7405
7423
  },
7406
7424
  /**
7407
- * 获取左侧容器元素<li>
7425
+ * 为元素设置classname
7426
+ * @param element
7427
+ * @param className
7428
+ */
7429
+ setElementClassName(element, className) {
7430
+ if (className == null) {
7431
+ return;
7432
+ }
7433
+ if (typeof className === "function") {
7434
+ className = className();
7435
+ }
7436
+ if (typeof className === "string") {
7437
+ let splitClassName = className.split(" ");
7438
+ splitClassName.forEach((classNameStr) => {
7439
+ element.classList.add(classNameStr);
7440
+ });
7441
+ }
7442
+ else if (Array.isArray(className)) {
7443
+ className.forEach((classNameStr) => {
7444
+ this.setElementClassName(element, classNameStr);
7445
+ });
7446
+ }
7447
+ },
7448
+ /**
7449
+ * 创建左侧容器元素<li>
7408
7450
  * @param asideConfig
7409
7451
  */
7410
- getAsideItem(asideConfig) {
7452
+ createAsideItem(asideConfig) {
7411
7453
  let liElement = document.createElement("li");
7412
7454
  liElement.id = asideConfig.id;
7413
7455
  liElement["__forms__"] = asideConfig.forms;
7414
7456
  liElement.innerHTML = asideConfig.title;
7415
- this.addElementAttributes(liElement, asideConfig.attributes);
7457
+ /* 处理className */
7458
+ this.setElementClassName(liElement, asideConfig.className);
7459
+ this.setElementAttributes(liElement, asideConfig.attributes);
7416
7460
  this.setElementProps(liElement, asideConfig.props);
7417
7461
  return liElement;
7418
7462
  },
7419
7463
  /**
7420
- * 获取中间容器的元素<li>
7464
+ * 创建中间容器的元素<li>
7421
7465
  * type ==> switch
7422
7466
  * @param formConfig
7423
7467
  */
7424
- getSectionContainerItem_switch(formConfig) {
7468
+ createSectionContainerItem_switch(formConfig) {
7425
7469
  let liElement = document.createElement("li");
7426
7470
  liElement["__formConfig__"] = formConfig;
7427
- if (formConfig.className) {
7428
- liElement.className = formConfig.className;
7429
- }
7430
- this.addElementAttributes(liElement, formConfig.attributes);
7471
+ this.setElementClassName(liElement, formConfig.className);
7472
+ this.setElementAttributes(liElement, formConfig.attributes);
7431
7473
  this.setElementProps(liElement, formConfig.props);
7432
7474
  /* 左边底部的描述的文字 */
7433
7475
  let leftDescriptionText = "";
@@ -7524,13 +7566,11 @@ System.register('pops', [], (function (exports) {
7524
7566
  * type ==> slider
7525
7567
  * @param formConfig
7526
7568
  */
7527
- getSectionContainerItem_slider(formConfig) {
7569
+ createSectionContainerItem_slider(formConfig) {
7528
7570
  let liElement = document.createElement("li");
7529
7571
  liElement["__formConfig__"] = formConfig;
7530
- if (formConfig.className) {
7531
- liElement.className = formConfig.className;
7532
- }
7533
- this.addElementAttributes(liElement, formConfig.attributes);
7572
+ this.setElementClassName(liElement, formConfig.className);
7573
+ this.setElementAttributes(liElement, formConfig.attributes);
7534
7574
  this.setElementProps(liElement, formConfig.props);
7535
7575
  /* 左边底部的描述的文字 */
7536
7576
  let leftDescriptionText = "";
@@ -7590,13 +7630,11 @@ System.register('pops', [], (function (exports) {
7590
7630
  * type ==> slider
7591
7631
  * @param formConfig
7592
7632
  */
7593
- getSectionContainerItem_slider_new(formConfig) {
7633
+ createSectionContainerItem_slider_new(formConfig) {
7594
7634
  let liElement = document.createElement("li");
7595
7635
  liElement["__formConfig__"] = formConfig;
7596
- if (formConfig.className) {
7597
- liElement.className = formConfig.className;
7598
- }
7599
- this.addElementAttributes(liElement, formConfig.attributes);
7636
+ this.setElementClassName(liElement, formConfig.className);
7637
+ this.setElementAttributes(liElement, formConfig.attributes);
7600
7638
  this.setElementProps(liElement, formConfig.props);
7601
7639
  /* 左边底部的描述的文字 */
7602
7640
  let leftDescriptionText = "";
@@ -8147,13 +8185,11 @@ System.register('pops', [], (function (exports) {
8147
8185
  * type ==> input
8148
8186
  * @param formConfig
8149
8187
  */
8150
- getSectionContainerItem_input(formConfig) {
8188
+ createSectionContainerItem_input(formConfig) {
8151
8189
  let liElement = document.createElement("li");
8152
8190
  liElement["__formConfig__"] = formConfig;
8153
- if (formConfig.className) {
8154
- liElement.className = formConfig.className;
8155
- }
8156
- this.addElementAttributes(liElement, formConfig.attributes);
8191
+ this.setElementClassName(liElement, formConfig.className);
8192
+ this.setElementAttributes(liElement, formConfig.attributes);
8157
8193
  this.setElementProps(liElement, formConfig.props);
8158
8194
  let inputType = "text";
8159
8195
  if (formConfig.isPassword) {
@@ -8351,13 +8387,11 @@ System.register('pops', [], (function (exports) {
8351
8387
  * type ==> textarea
8352
8388
  * @param formConfig
8353
8389
  */
8354
- getSectionContainerItem_textarea(formConfig) {
8390
+ createSectionContainerItem_textarea(formConfig) {
8355
8391
  let liElement = document.createElement("li");
8356
8392
  liElement["__formConfig__"] = formConfig;
8357
- if (formConfig.className) {
8358
- liElement.className = formConfig.className;
8359
- }
8360
- this.addElementAttributes(liElement, formConfig.attributes);
8393
+ this.setElementClassName(liElement, formConfig.className);
8394
+ this.setElementAttributes(liElement, formConfig.attributes);
8361
8395
  this.setElementProps(liElement, formConfig.props);
8362
8396
  /* 左边底部的描述的文字 */
8363
8397
  let leftDescriptionText = "";
@@ -8426,13 +8460,11 @@ System.register('pops', [], (function (exports) {
8426
8460
  * type ==> select
8427
8461
  * @param formConfig
8428
8462
  */
8429
- getSectionContainerItem_select(formConfig) {
8463
+ createSectionContainerItem_select(formConfig) {
8430
8464
  let liElement = document.createElement("li");
8431
8465
  liElement["__formConfig__"] = formConfig;
8432
- if (formConfig.className) {
8433
- liElement.className = formConfig.className;
8434
- }
8435
- this.addElementAttributes(liElement, formConfig.attributes);
8466
+ this.setElementClassName(liElement, formConfig.className);
8467
+ this.setElementAttributes(liElement, formConfig.attributes);
8436
8468
  this.setElementProps(liElement, formConfig.props);
8437
8469
  /* 左边底部的描述的文字 */
8438
8470
  let leftDescriptionText = "";
@@ -8579,13 +8611,11 @@ System.register('pops', [], (function (exports) {
8579
8611
  * type ==> select-multiple
8580
8612
  * @param formConfig
8581
8613
  */
8582
- getSectionContainerItem_select_multiple_new(formConfig) {
8614
+ createSectionContainerItem_select_multiple_new(formConfig) {
8583
8615
  let liElement = document.createElement("li");
8584
8616
  Reflect.set(liElement, "__formConfig__", formConfig);
8585
- if (formConfig.className) {
8586
- liElement.className = formConfig.className;
8587
- }
8588
- this.addElementAttributes(liElement, formConfig.attributes);
8617
+ this.setElementClassName(liElement, formConfig.className);
8618
+ this.setElementAttributes(liElement, formConfig.attributes);
8589
8619
  this.setElementProps(liElement, formConfig.props);
8590
8620
  /* 左边底部的描述的文字 */
8591
8621
  let leftDescriptionText = "";
@@ -9109,13 +9139,11 @@ System.register('pops', [], (function (exports) {
9109
9139
  * type ==> button
9110
9140
  * @param formConfig
9111
9141
  */
9112
- getSectionContainerItem_button(formConfig) {
9142
+ createSectionContainerItem_button(formConfig) {
9113
9143
  let liElement = document.createElement("li");
9114
9144
  liElement["__formConfig__"] = formConfig;
9115
- if (formConfig.className) {
9116
- liElement.className = formConfig.className;
9117
- }
9118
- this.addElementAttributes(liElement, formConfig.attributes);
9145
+ this.setElementClassName(liElement, formConfig.className);
9146
+ this.setElementAttributes(liElement, formConfig.attributes);
9119
9147
  this.setElementProps(liElement, formConfig.props);
9120
9148
  /* 左边底部的描述的文字 */
9121
9149
  let leftDescriptionText = "";
@@ -9260,16 +9288,14 @@ System.register('pops', [], (function (exports) {
9260
9288
  * 获取深层容器的元素<li>
9261
9289
  * @param formConfig
9262
9290
  */
9263
- getSectionContainerItem_deepMenu(formConfig) {
9291
+ createSectionContainerItem_deepMenu(formConfig) {
9264
9292
  let that = this;
9265
9293
  let liElement = document.createElement("li");
9266
9294
  liElement.classList.add("pops-panel-deepMenu-nav-item");
9267
9295
  liElement["__formConfig__"] = formConfig;
9268
- if (formConfig.className) {
9269
- liElement.classList.add(formConfig.className);
9270
- }
9296
+ this.setElementClassName(liElement, formConfig.className);
9271
9297
  // 设置属性
9272
- this.addElementAttributes(liElement, formConfig.attributes);
9298
+ this.setElementAttributes(liElement, formConfig.attributes);
9273
9299
  // 设置元素上的属性
9274
9300
  this.setElementProps(liElement, formConfig.props);
9275
9301
  /* 左边底部的描述的文字 */
@@ -9331,10 +9357,8 @@ System.register('pops', [], (function (exports) {
9331
9357
  formHeaderDivElement.innerHTML = formItemConfig["text"];
9332
9358
  /* 加进容器内 */
9333
9359
  formContainerListElement.appendChild(formHeaderDivElement);
9334
- if (formItemConfig.className) {
9335
- popsDOMUtils.addClassName(formContainerListElement, formItemConfig.className);
9336
- }
9337
- that.addElementAttributes(formContainerListElement, formItemConfig.attributes);
9360
+ that.setElementClassName(formContainerListElement, formItemConfig.className);
9361
+ that.setElementAttributes(formContainerListElement, formItemConfig.attributes);
9338
9362
  that.setElementProps(formContainerListElement, formItemConfig.props);
9339
9363
  childForms.forEach((childFormConfig) => {
9340
9364
  that.uListContainerAddItem(childFormConfig, {
@@ -9433,7 +9457,7 @@ System.register('pops', [], (function (exports) {
9433
9457
  * type ===> own
9434
9458
  * @param formConfig
9435
9459
  */
9436
- getSectionContainerItem_own(formConfig) {
9460
+ createSectionContainerItem_own(formConfig) {
9437
9461
  let liElement = document.createElement("li");
9438
9462
  liElement["__formConfig__"] = formConfig;
9439
9463
  if (formConfig.className) {
@@ -9446,35 +9470,35 @@ System.register('pops', [], (function (exports) {
9446
9470
  * 获取中间容器的元素<li>
9447
9471
  * @param formConfig
9448
9472
  */
9449
- getSectionContainerItem(formConfig) {
9473
+ createSectionContainerItem(formConfig) {
9450
9474
  /** 配置项的类型 */
9451
9475
  let formType = formConfig["type"];
9452
9476
  if (formType === "switch") {
9453
- return this.getSectionContainerItem_switch(formConfig);
9477
+ return this.createSectionContainerItem_switch(formConfig);
9454
9478
  }
9455
9479
  else if (formType === "slider") {
9456
- return this.getSectionContainerItem_slider_new(formConfig);
9480
+ return this.createSectionContainerItem_slider_new(formConfig);
9457
9481
  }
9458
9482
  else if (formType === "input") {
9459
- return this.getSectionContainerItem_input(formConfig);
9483
+ return this.createSectionContainerItem_input(formConfig);
9460
9484
  }
9461
9485
  else if (formType === "textarea") {
9462
- return this.getSectionContainerItem_textarea(formConfig);
9486
+ return this.createSectionContainerItem_textarea(formConfig);
9463
9487
  }
9464
9488
  else if (formType === "select") {
9465
- return this.getSectionContainerItem_select(formConfig);
9489
+ return this.createSectionContainerItem_select(formConfig);
9466
9490
  }
9467
9491
  else if (formType === "select-multiple") {
9468
- return this.getSectionContainerItem_select_multiple_new(formConfig);
9492
+ return this.createSectionContainerItem_select_multiple_new(formConfig);
9469
9493
  }
9470
9494
  else if (formType === "button") {
9471
- return this.getSectionContainerItem_button(formConfig);
9495
+ return this.createSectionContainerItem_button(formConfig);
9472
9496
  }
9473
9497
  else if (formType === "deepMenu") {
9474
- return this.getSectionContainerItem_deepMenu(formConfig);
9498
+ return this.createSectionContainerItem_deepMenu(formConfig);
9475
9499
  }
9476
9500
  else if (formType === "own") {
9477
- return this.getSectionContainerItem_own(formConfig);
9501
+ return this.createSectionContainerItem_own(formConfig);
9478
9502
  }
9479
9503
  else {
9480
9504
  console.error("尚未实现的type类型", formConfig);
@@ -9501,10 +9525,8 @@ System.register('pops', [], (function (exports) {
9501
9525
  formHeaderDivElement.innerHTML = __formConfig_forms["text"];
9502
9526
  /* 加进容器内 */
9503
9527
  formContainerListElement.appendChild(formHeaderDivElement);
9504
- if (__formConfig_forms.className) {
9505
- popsDOMUtils.addClassName(formContainerListElement, __formConfig_forms.className);
9506
- }
9507
- that.addElementAttributes(formContainerListElement, formConfig.attributes);
9528
+ that.setElementClassName(formContainerListElement, formConfig.className);
9529
+ that.setElementAttributes(formContainerListElement, formConfig.attributes);
9508
9530
  that.setElementProps(formContainerListElement, formConfig.props);
9509
9531
  childForms.forEach((childFormConfig) => {
9510
9532
  that.uListContainerAddItem(childFormConfig, {
@@ -9530,7 +9552,7 @@ System.register('pops', [], (function (exports) {
9530
9552
  * @param containerOptions
9531
9553
  */
9532
9554
  uListContainerAddItem(formConfig, containerOptions) {
9533
- let itemLiElement = this.getSectionContainerItem(formConfig);
9555
+ let itemLiElement = this.createSectionContainerItem(formConfig);
9534
9556
  if (itemLiElement) {
9535
9557
  containerOptions["ulElement"].appendChild(itemLiElement);
9536
9558
  }