Blame view

src/Common/Common.js 2.89 KB
3a3ecabe   Imshann   init
1
2
  import baseStyle from "antd/lib/style/index.css";
  
6fcf6aec   Imshann   feat(popover): 优化组件
3
4
5
6
  angular.module("esNgAntd").service("esNgAntd", [
      "$compile",
      function ($compile) {
          this.styleSheets = null;
3a3ecabe   Imshann   init
7
  
fe17acf4   Imshann   优化组件
8
9
          this.conflictType = null;
  
6fcf6aec   Imshann   feat(popover): 优化组件
10
11
12
13
14
15
16
          this.createStyle = function (key, style) {
              if (!document.querySelector("#antd")) {
                  let styleElement = document.createElement("style");
                  styleElement.setAttribute("id", "antd");
                  styleElement.setAttribute("type", "text/css");
                  styleElement.innerHTML = baseStyle.toString();
                  document.head.appendChild(styleElement);
fe17acf4   Imshann   优化组件
17
18
19
                  if (this.styleSheets) {
                      this.disableStyle("anticon");
                  }
3a3ecabe   Imshann   init
20
              }
6fcf6aec   Imshann   feat(popover): 优化组件
21
22
23
24
25
26
27
28
29
30
31
              if (!document.querySelector("#" + key)) {
                  let styleElement = document.createElement("style");
                  styleElement.setAttribute("id", key);
                  styleElement.setAttribute("type", "text/css");
                  styleElement.innerHTML = style.toString();
                  document.head.appendChild(styleElement);
                  if (this.styleSheets) {
                      this.disableStyle(key);
                  }
              }
          };
3a3ecabe   Imshann   init
32
  
6fcf6aec   Imshann   feat(popover): 优化组件
33
34
35
36
37
          this.disableStyle = function (name) {
              for (let i = 0; i < this.styleSheets.cssRules.length; i++) {
                  let rule = this.styleSheets.cssRules[i];
                  if (
                      rule.selectorText &&
fe17acf4   Imshann   优化组件
38
39
                      rule.selectorText.indexOf(name) !== -1 &&
                      rule.selectorText.indexOf("ant3") === -1
6fcf6aec   Imshann   feat(popover): 优化组件
40
                  ) {
fe17acf4   Imshann   优化组件
41
42
43
44
45
46
                      rule.selectorText = rule.selectorText
                          .split(",")
                          .map(function (item) {
                              return ".ant3 " + item;
                          })
                          .join(",");
6fcf6aec   Imshann   feat(popover): 优化组件
47
                  }
3a3ecabe   Imshann   init
48
              }
6fcf6aec   Imshann   feat(popover): 优化组件
49
          };
3a3ecabe   Imshann   init
50
  
fe17acf4   Imshann   优化组件
51
52
          this.conflict = function (filename, type) {
              this.conflictType = type;
6fcf6aec   Imshann   feat(popover): 优化组件
53
54
55
56
57
              for (let i = 0; i < document.styleSheets.length; i++) {
                  const element = document.styleSheets[i];
                  if (element.href && element.href.indexOf(filename) !== -1) {
                      this.styleSheets = element;
                  }
3a3ecabe   Imshann   init
58
              }
6fcf6aec   Imshann   feat(popover): 优化组件
59
60
61
62
63
64
65
66
          };
  
          this.createLayer = function (content, scope) {
              let div = document.createElement("div");
              div.innerHTML = content;
              document.body.appendChild(div);
              $compile(div)(scope);
          };
1b6f912f   Imshann   优化
67
  
6fcf6aec   Imshann   feat(popover): 优化组件
68
69
70
71
72
73
74
75
76
77
78
79
80
          this.getOffset = function (ele) {
              if (!ele || ele.nodeType != 1) {
                  return;
              }
              let rect = ele.getBoundingClientRect();
              let doc = ele.ownerDocument.documentElement;
              return {
                  top: rect.top + window.pageYOffset - doc.clientTop,
                  left: rect.left + window.pageXOffset - doc.clientLeft,
              };
          };
      },
  ]);