terrier-engine 4.4.35 → 4.5.1

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 (171) hide show
  1. package/data-dive/dives/group-editor.ts +8 -3
  2. package/package.json +1 -1
  3. package/terrier/forms.ts +36 -1
  4. package/terrier/gen/badges.ts +734 -0
  5. package/terrier/gen/hub-icons.ts +9 -1
  6. package/terrier/glyps.ts +12 -1
  7. package/terrier/images/badges/badge-accounts_payable-handling.svg +48 -0
  8. package/terrier/images/badges/badge-accounts_receivable-handling.svg +50 -0
  9. package/terrier/images/badges/badge-applicator_license-admin.svg +54 -0
  10. package/terrier/images/badges/badge-autopay-admin.svg +46 -0
  11. package/terrier/images/badges/badge-autopay-handling.svg +46 -0
  12. package/terrier/images/badges/badge-bats-admin.svg +47 -0
  13. package/terrier/images/badges/badge-bats-management.svg +45 -0
  14. package/terrier/images/badges/badge-bats-ops.svg +47 -0
  15. package/terrier/images/badges/badge-bats-sales.svg +47 -0
  16. package/terrier/images/badges/badge-clypboard_hardware-admin.svg +70 -0
  17. package/terrier/images/badges/badge-clypboard_project-admin.svg +51 -0
  18. package/terrier/images/badges/badge-clypmart-admin.svg +58 -0
  19. package/terrier/images/badges/badge-commercial-admin.svg +56 -0
  20. package/terrier/images/badges/badge-commercial-management.svg +54 -0
  21. package/terrier/images/badges/badge-commercial-ops.svg +56 -0
  22. package/terrier/images/badges/badge-commercial-sales.svg +56 -0
  23. package/terrier/images/badges/badge-compliance-admin.svg +51 -0
  24. package/terrier/images/badges/badge-contracts-admin.svg +54 -0
  25. package/terrier/images/badges/badge-contracts-reporting.svg +52 -0
  26. package/terrier/images/badges/badge-copesan-admin.svg +45 -0
  27. package/terrier/images/badges/badge-credit_card-admin.svg +55 -0
  28. package/terrier/images/badges/badge-customer_call-handling.svg +49 -0
  29. package/terrier/images/badges/badge-customer_text-handling.svg +59 -0
  30. package/terrier/images/badges/badge-employee_data-admin.svg +49 -0
  31. package/terrier/images/badges/badge-employee_data-handling.svg +49 -0
  32. package/terrier/images/badges/badge-employee_data-reporting.svg +47 -0
  33. package/terrier/images/badges/badge-finance-admin.svg +49 -0
  34. package/terrier/images/badges/badge-finance-reporting.svg +47 -0
  35. package/terrier/images/badges/badge-fleet-admin.svg +58 -0
  36. package/terrier/images/badges/badge-fumigation-admin.svg +56 -0
  37. package/terrier/images/badges/badge-fumigation-management.svg +54 -0
  38. package/terrier/images/badges/badge-fumigation-ops.svg +56 -0
  39. package/terrier/images/badges/badge-information_technology-admin.svg +51 -0
  40. package/terrier/images/badges/badge-information_technology-management.svg +49 -0
  41. package/terrier/images/badges/badge-irrigation-admin.svg +51 -0
  42. package/terrier/images/badges/badge-irrigation-management.svg +49 -0
  43. package/terrier/images/badges/badge-irrigation-ops.svg +51 -0
  44. package/terrier/images/badges/badge-irrigation-sales.svg +51 -0
  45. package/terrier/images/badges/badge-landscape-admin.svg +50 -0
  46. package/terrier/images/badges/badge-landscape-management.svg +48 -0
  47. package/terrier/images/badges/badge-landscape-ops.svg +50 -0
  48. package/terrier/images/badges/badge-landscape-sales.svg +50 -0
  49. package/terrier/images/badges/badge-marketing-admin.svg +59 -0
  50. package/terrier/images/badges/badge-mergers_and_acquisitions-admin.svg +47 -0
  51. package/terrier/images/badges/badge-mergers_and_acquisitions-reporting.svg +45 -0
  52. package/terrier/images/badges/badge-multi_housing-admin.svg +61 -0
  53. package/terrier/images/badges/badge-multi_housing-management.svg +59 -0
  54. package/terrier/images/badges/badge-multi_housing-ops.svg +61 -0
  55. package/terrier/images/badges/badge-multi_housing-sales.svg +61 -0
  56. package/terrier/images/badges/badge-payroll-admin.svg +48 -0
  57. package/terrier/images/badges/badge-payroll-reporting.svg +46 -0
  58. package/terrier/images/badges/badge-pest-admin.svg +48 -0
  59. package/terrier/images/badges/badge-pest-management.svg +46 -0
  60. package/terrier/images/badges/badge-pest-ops.svg +48 -0
  61. package/terrier/images/badges/badge-pest-sales.svg +48 -0
  62. package/terrier/images/badges/badge-pro-admin.svg +60 -0
  63. package/terrier/images/badges/badge-pro-management.svg +58 -0
  64. package/terrier/images/badges/badge-pro-ops.svg +60 -0
  65. package/terrier/images/badges/badge-pro-sales.svg +60 -0
  66. package/terrier/images/badges/badge-program-admin.svg +45 -0
  67. package/terrier/images/badges/badge-proposals-handling.svg +51 -0
  68. package/terrier/images/badges/badge-residential-admin.svg +53 -0
  69. package/terrier/images/badges/badge-residential-management.svg +51 -0
  70. package/terrier/images/badges/badge-residential-ops.svg +53 -0
  71. package/terrier/images/badges/badge-residential-sales.svg +53 -0
  72. package/terrier/images/badges/badge-sales-management.svg +46 -0
  73. package/terrier/images/badges/badge-sales-reporting.svg +46 -0
  74. package/terrier/images/badges/badge-scripts-admin.svg +50 -0
  75. package/terrier/images/badges/badge-scripts-reporting.svg +48 -0
  76. package/terrier/images/badges/badge-termite-admin.svg +48 -0
  77. package/terrier/images/badges/badge-termite-management.svg +46 -0
  78. package/terrier/images/badges/badge-termite-ops.svg +48 -0
  79. package/terrier/images/badges/badge-termite-sales.svg +48 -0
  80. package/terrier/images/badges/badge-wildlife-admin.svg +45 -0
  81. package/terrier/images/badges/badge-wildlife-management.svg +43 -0
  82. package/terrier/images/badges/badge-wildlife-ops.svg +45 -0
  83. package/terrier/images/badges/badge-wildlife-sales.svg +45 -0
  84. package/terrier/images/icons/related_posts.svg +1 -0
  85. package/terrier/images/optimized/badge-accounts_payable.svg +1 -0
  86. package/terrier/images/optimized/badge-accounts_receivable.svg +1 -0
  87. package/terrier/images/optimized/badge-applicator_license.svg +1 -0
  88. package/terrier/images/optimized/badge-autopay.svg +1 -0
  89. package/terrier/images/optimized/badge-bats.svg +1 -0
  90. package/terrier/images/optimized/badge-clypboard_hardware.svg +1 -0
  91. package/terrier/images/optimized/badge-clypboard_project.svg +1 -0
  92. package/terrier/images/optimized/badge-clypmart.svg +1 -0
  93. package/terrier/images/optimized/badge-commercial.svg +1 -0
  94. package/terrier/images/optimized/badge-compliance.svg +1 -0
  95. package/terrier/images/optimized/badge-contracts.svg +1 -0
  96. package/terrier/images/optimized/badge-copesan.svg +1 -0
  97. package/terrier/images/optimized/badge-credit_card.svg +1 -0
  98. package/terrier/images/optimized/badge-customer_call.svg +1 -0
  99. package/terrier/images/optimized/badge-customer_text.svg +1 -0
  100. package/terrier/images/optimized/badge-employee_data.svg +1 -0
  101. package/terrier/images/optimized/badge-finance.svg +1 -0
  102. package/terrier/images/optimized/badge-fleet.svg +1 -0
  103. package/terrier/images/optimized/badge-fumigation.svg +1 -0
  104. package/terrier/images/optimized/badge-information_technology.svg +1 -0
  105. package/terrier/images/optimized/badge-irrigation.svg +1 -0
  106. package/terrier/images/optimized/badge-landscape.svg +1 -0
  107. package/terrier/images/optimized/badge-marketing.svg +1 -0
  108. package/terrier/images/optimized/badge-mergers_and_acquisitions.svg +1 -0
  109. package/terrier/images/optimized/badge-multi_housing.svg +1 -0
  110. package/terrier/images/optimized/badge-payroll.svg +1 -0
  111. package/terrier/images/optimized/badge-pest.svg +1 -0
  112. package/terrier/images/optimized/badge-pro.svg +1 -0
  113. package/terrier/images/optimized/badge-program.svg +1 -0
  114. package/terrier/images/optimized/badge-proposals.svg +1 -0
  115. package/terrier/images/optimized/badge-residential.svg +1 -0
  116. package/terrier/images/optimized/badge-sales.svg +1 -0
  117. package/terrier/images/optimized/badge-scripts.svg +1 -0
  118. package/terrier/images/optimized/badge-termite.svg +1 -0
  119. package/terrier/images/optimized/badge-wildlife.svg +1 -0
  120. package/terrier/images/optimized/badge_role-admin.svg +1 -0
  121. package/terrier/images/optimized/badge_role-handling.svg +1 -0
  122. package/terrier/images/optimized/badge_role-management.svg +1 -0
  123. package/terrier/images/optimized/badge_role-ops.svg +1 -0
  124. package/terrier/images/optimized/badge_role-reporting.svg +1 -0
  125. package/terrier/images/optimized/badge_role-sales.svg +1 -0
  126. package/terrier/images/optimized/icon-related_posts.svg +1 -0
  127. package/terrier/images/raw/badge-accounts_payable.svg +22 -0
  128. package/terrier/images/raw/badge-accounts_receivable.svg +24 -0
  129. package/terrier/images/raw/badge-applicator_license.svg +28 -0
  130. package/terrier/images/raw/badge-autopay.svg +20 -0
  131. package/terrier/images/raw/badge-bats.svg +19 -0
  132. package/terrier/images/raw/badge-clypboard_hardware.svg +44 -0
  133. package/terrier/images/raw/badge-clypboard_project.svg +25 -0
  134. package/terrier/images/raw/badge-clypmart.svg +37 -0
  135. package/terrier/images/raw/badge-commercial.svg +43 -0
  136. package/terrier/images/raw/badge-compliance.svg +26 -0
  137. package/terrier/images/raw/badge-contracts.svg +28 -0
  138. package/terrier/images/raw/badge-copesan.svg +19 -0
  139. package/terrier/images/raw/badge-credit_card.svg +29 -0
  140. package/terrier/images/raw/badge-customer_call.svg +26 -0
  141. package/terrier/images/raw/badge-customer_text.svg +33 -0
  142. package/terrier/images/raw/badge-employee_data.svg +23 -0
  143. package/terrier/images/raw/badge-finance.svg +23 -0
  144. package/terrier/images/raw/badge-fleet.svg +32 -0
  145. package/terrier/images/raw/badge-fumigation.svg +30 -0
  146. package/terrier/images/raw/badge-information_technology.svg +25 -0
  147. package/terrier/images/raw/badge-irrigation.svg +28 -0
  148. package/terrier/images/raw/badge-landscape.svg +24 -0
  149. package/terrier/images/raw/badge-marketing.svg +34 -0
  150. package/terrier/images/raw/badge-mergers_and_acquisitions.svg +22 -0
  151. package/terrier/images/raw/badge-multi_housing.svg +72 -0
  152. package/terrier/images/raw/badge-payroll.svg +22 -0
  153. package/terrier/images/raw/badge-pest.svg +22 -0
  154. package/terrier/images/raw/badge-pro.svg +34 -0
  155. package/terrier/images/raw/badge-program.svg +19 -0
  156. package/terrier/images/raw/badge-proposals.svg +25 -0
  157. package/terrier/images/raw/badge-residential.svg +29 -0
  158. package/terrier/images/raw/badge-sales.svg +22 -0
  159. package/terrier/images/raw/badge-scripts.svg +24 -0
  160. package/terrier/images/raw/badge-termite.svg +22 -0
  161. package/terrier/images/raw/badge-wildlife.svg +19 -0
  162. package/terrier/images/raw/badge_role-admin.svg +35 -0
  163. package/terrier/images/raw/badge_role-handling.svg +35 -0
  164. package/terrier/images/raw/badge_role-management.svg +35 -0
  165. package/terrier/images/raw/badge_role-ops.svg +35 -0
  166. package/terrier/images/raw/badge_role-reporting.svg +35 -0
  167. package/terrier/images/raw/badge_role-sales.svg +35 -0
  168. package/terrier/images/raw/icon-related_posts.svg +30 -0
  169. package/terrier/overlays.ts +3 -1
  170. package/terrier/parts/glyp-picker.ts +98 -0
  171. package/terrier/parts/terrier-form-part.ts +4 -1
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-admin</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="24.0000802" cy="24" rx="7.99991976" ry="8"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M24.7794573,18.0008246 C25.0064656,18.0008246 25.211881,18.149121 25.275765,18.3664078 C25.3416271,18.5785457 25.3880845,18.792524 25.4148217,19.0054945 L25.4284711,19.1411939 L25.4820957,19.1567244 C25.7911505,19.2514198 26.0901448,19.3757355 26.3763298,19.5284545 L26.4269907,19.5568866 L26.5341272,19.4701069 C26.6617062,19.3714573 26.7979907,19.2797713 26.9430878,19.195145 L27.0911264,19.1128754 C27.2909039,19.0130265 27.5339578,19.0498381 27.6939597,19.2097775 L28.2429941,19.7608809 L28.792658,20.3103255 C28.952101,20.4697049 28.9889605,20.7128801 28.884365,20.9217208 C28.7794326,21.1196831 28.6605952,21.3044715 28.5292398,21.4737873 L28.4446001,21.5774959 L28.4727775,21.62771 C28.6247464,21.913801 28.748379,22.212683 28.8428806,22.5221571 L28.85815,22.5760154 L29.0229021,22.5938708 C29.1743776,22.6140506 29.3260052,22.644223 29.4768691,22.6841937 L29.6274444,22.7274233 C29.8530599,22.7937543 30.01219,23.0045177 29.9992433,23.225567 L29.9992433,24.7800373 C29.9992433,25.0071088 29.8508451,25.2125011 29.6340081,25.2761941 C29.3790295,25.3556122 29.1218882,25.40739 28.8671744,25.4304942 L28.844538,25.4832757 C28.7505885,25.7924534 28.6263343,26.091644 28.4732523,26.3776369 L28.4450287,26.4269581 L28.5316028,26.5337763 C28.6302954,26.6613097 28.7220224,26.797547 28.8066878,26.9425956 L28.8889957,27.0905853 C28.9889605,27.2904349 28.952101,27.5336101 28.7932875,27.692359 L28.2429941,28.2447234 L27.6809744,28.8060347 C27.5198371,28.9547175 27.2796231,28.991099 27.0831853,28.8863668 C26.8861544,28.7827076 26.7016139,28.6643632 26.5318744,28.5327709 L26.4261336,28.4467103 L26.3793018,28.4736189 C26.0943631,28.6257592 25.7952421,28.749581 25.4844973,28.8442212 L25.4284711,28.8598317 L25.4150326,28.9954841 C25.395156,29.1545193 25.364322,29.3134789 25.3227512,29.4712217 L25.2776096,29.6285165 C25.2121128,29.8511167 25.0094302,30.000201 24.7794573,30.000201 L23.2220763,30.000201 C22.9950679,30.000201 22.7896526,29.8519047 22.7249756,29.6320349 C22.659747,29.417163 22.6134882,29.2031699 22.5867876,28.9914106 L22.5730481,28.8598317 L22.5183298,28.8445338 C22.2085944,28.7501578 21.9101719,28.6265731 21.6245729,28.4743754 L21.5753856,28.4467103 L21.4677753,28.534648 C21.3398631,28.6337527 21.2033457,28.7253272 21.058297,28.8091749 L20.9104072,28.8904396 C20.7106296,28.9902885 20.4675757,28.9534769 20.3088341,28.7947972 L19.7556197,28.2440929 L19.1947132,27.680638 C19.0458992,27.5194872 19.0094703,27.279152 19.1148783,27.0815942 C19.2211274,26.8811477 19.340111,26.6955716 19.4714449,26.5264138 L19.5534907,26.4252439 L19.5269475,26.3777201 C19.3749098,26.092409 19.2511355,25.7936152 19.1565052,25.4838895 L19.1407979,25.4284386 L18.9795027,25.4110662 C18.8267186,25.3905032 18.6739079,25.3598485 18.5225785,25.3194818 L18.3717989,25.2758917 C18.1491853,25.2104432 18,25.0077852 18,24.777748 L18,23.2232777 C18,22.9962062 18.1483981,22.7908139 18.3687672,22.7260375 C18.6257235,22.648427 18.8814856,22.5975953 19.1318384,22.5748842 L19.1563188,22.5188222 C19.2508756,22.208428 19.3746137,21.9093161 19.526753,21.6236952 L19.5534907,21.5749246 L19.4662,21.467618 C19.3670519,21.3397516 19.2754363,21.2032815 19.1915501,21.0582813 L19.1102475,20.9104404 C19.0102828,20.7105907 19.0471422,20.4674155 19.2065852,20.3080361 L20.3082033,19.2068577 C20.4675757,19.0475488 20.7106296,19.0107371 20.9182324,19.114598 C21.1162988,19.2187247 21.3008062,19.3370753 21.4702918,19.4685654 L21.5753856,19.5538868 L21.6239579,19.5271181 C21.9093645,19.3751506 22.2082562,19.2514343 22.5180815,19.1568489 L22.5726195,19.1411939 L22.5865009,19.0055415 C22.6063775,18.8465064 22.6372115,18.6875467 22.6787823,18.529804 L22.7239239,18.3725091 C22.7894207,18.149909 22.9921033,18.0008246 23.2220763,18.0008246 Z M23.9996882,20.8170048 C22.24327,20.8170048 20.8161802,22.2440946 20.8161802,24.0005128 C20.8161802,25.7545954 22.2456057,27.1840208 23.9996882,27.1840208 C25.7537708,27.1840208 27.1831963,25.756931 27.1831963,24.0005128 C27.1831963,22.2440946 25.7537708,20.8170048 23.9996882,20.8170048 Z" id="path-3"></path>
19
+ <filter x="-2.1%" y="-2.1%" width="104.2%" height="104.2%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.100743007 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-admin" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#01A7B1" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-2" fill-rule="nonzero">
31
+ <use fill="#FFFFFF" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-handling</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="24.0000002" cy="24.0001005" rx="8.00002026" ry="8.0001005"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M26.2069794,19.7397088 C26.6270086,19.0256592 27.5463612,18.7873085 28.2604109,19.2073377 C28.9744606,19.6273669 29.2128112,20.5467195 28.792782,21.2607692 L24.792782,28.7607692 C24.2952709,29.6065381 23.1330657,29.7547444 22.4392205,29.0608992 L19.4392205,26.0608992 C18.8534341,25.4751128 18.8534341,24.5253653 19.4392205,23.9395789 C20.0250069,23.3537924 20.9747544,23.3537924 21.5605409,23.9395789 L23.1898807,25.569239 L26.2069794,19.7397088 Z" id="path-3"></path>
19
+ <filter x="-2.5%" y="-2.4%" width="105.0%" height="104.8%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-handling" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#EFA234" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-92" fill-rule="nonzero">
31
+ <use fill="#FFFFFF" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-management</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="24" cy="24.0001208" rx="8" ry="8.00008024"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M21.5182334,18.7773501 L22.8683259,20.8024888 C22.9516517,20.9274776 22.9743671,21.0833068 22.9301902,21.2268818 L21.0885318,27.2122716 C21.0340657,27.3892865 21.0819083,27.5819083 21.2128679,27.7128679 L23.6464466,30.1464466 C23.8417088,30.3417088 24.1582912,30.3417088 24.3535534,30.1464466 L26.7871321,27.7128679 C26.9180917,27.5819083 26.9659343,27.3892865 26.9114682,27.2122716 L25.0698098,21.2268818 C25.0256329,21.0833068 25.0483483,20.9274776 25.1316741,20.8024888 L26.4817666,18.7773501 C26.6349428,18.5475858 26.5728559,18.2371511 26.3430916,18.0839749 C26.2609578,18.029219 26.1644539,18 26.0657415,18 L21.9342585,18 C21.6581162,18 21.4342585,18.2238576 21.4342585,18.5 C21.4342585,18.5987125 21.4634776,18.6952163 21.5182334,18.7773501 Z" id="path-3"></path>
19
+ <filter x="-4.2%" y="-2.0%" width="108.3%" height="104.0%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-management" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#F49891" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-89">
31
+ <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-ops</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="24.0000002" cy="24.0001005" rx="8.00002026" ry="8.0001005"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M23.5000002,19.5 L23.5000002,22 C23.5000002,22.2761424 23.7238578,22.5 24.0000002,22.5 C24.2761426,22.5 24.5000002,22.2761424 24.5000002,22 L24.5000002,19.5 L25.4583335,19.5 C25.7059745,19.5 25.9175736,19.6543135 26.0022184,19.872028 L26.0000002,22.5 C26.0000002,22.7761424 26.2238578,23 26.5000002,23 C26.7761426,23 27.0000002,22.7761424 27.0000002,22.5 L27.0013611,20.5433492 C28.2872096,21.3681523 29.1255451,22.8290777 29.4967222,24.8932606 L29.5077502,24.95675 L29.8502952,25.293218 C29.9354145,25.3767897 29.987496,25.4876579 29.9980188,25.6055155 L30.0000002,25.65 L30.0000002,26.55 C30.0000002,26.7850712 29.836252,26.9883984 29.6065837,27.0385079 C28.4488161,27.2911117 26.9885068,27.4392966 25.2225883,27.4848314 L24.8251301,27.4932613 L24.4176032,27.498316 C24.280082,27.4994389 24.1408814,27.5 24.0000002,27.5 C23.859119,27.5 23.7199184,27.4994389 23.5823972,27.498316 L23.1748703,27.4932613 L22.7774121,27.4848314 C21.0114936,27.4392966 19.5511843,27.2911117 18.3934167,27.0385079 C18.1637484,26.9883984 18.0000002,26.7850712 18.0000002,26.55 L18.0000002,25.65 C18.0000002,25.5158015 18.053946,25.3872361 18.1497052,25.293218 L18.4920002,24.95675 L18.5242468,24.7799028 C18.9055871,22.774877 19.7369876,21.3520626 20.9998501,20.5425728 L21.0000002,22.5 C21.0000002,22.7761424 21.2238578,23 21.5000002,23 C21.7761426,23 22.0000002,22.7761424 22.0000002,22.5 L21.9985818,19.8699824 C22.0837538,19.6533475 22.2948022,19.5 22.5416669,19.5 L23.5000002,19.5 Z M27.7916669,24.625 L20.2083335,24.625 C19.8861674,24.625 19.6250002,24.8861672 19.6250002,25.2083333 C19.6250002,25.5304994 19.8861674,25.7916667 20.2083335,25.7916667 L27.7916669,25.7916667 C28.113833,25.7916667 28.3750002,25.5304994 28.3750002,25.2083333 C28.3750002,24.8861672 28.113833,24.625 27.7916669,24.625 Z" id="path-3"></path>
19
+ <filter x="-2.1%" y="-3.1%" width="104.2%" height="106.2%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-ops" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#EFA234" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-49" fill-rule="nonzero">
31
+ <use fill="#FFFFFF" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-reporting</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="24.0000102" cy="23.9999095" rx="8.00001022" ry="8.00009047"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M25.0857876,18.5 C25.3510034,18.5 25.6053567,18.6053563 25.792893,18.7928918 L27.7071156,20.7071065 C27.8946528,20.894643 28.0000102,21.1489976 28.0000102,21.4142148 L28.0000102,28.5 C28.0000102,29.0522847 27.552295,29.5 27.0000102,29.5 L21,29.5 C20.4477153,29.5 20,29.0522847 20,28.5 L20,19.5 C20,18.9477153 20.4477153,18.5 21,18.5 Z M24.0000102,19.9998995 C23.4477255,19.9998995 23.0000102,20.4476148 23.0000102,20.9998995 L23,24.999 L21.707117,25 C21.4309746,25 21.207117,25.2238576 21.207117,25.5 C21.207117,25.6326082 21.2597954,25.7597852 21.3535636,25.8535534 L23.6464568,28.1464466 C23.841719,28.3417088 24.1583015,28.3417088 24.3535636,28.1464466 L26.6464568,25.8535534 C26.841719,25.6582912 26.841719,25.3417088 26.6464568,25.1464466 C26.5526886,25.0526784 26.4255117,25 26.2929034,25 L25,24.999 L25.0000102,20.9998995 C25.0000102,20.4870637 24.61397,20.0643923 24.1166314,20.0066272 Z" id="path-3"></path>
19
+ <filter x="-3.1%" y="-2.3%" width="106.2%" height="104.5%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-reporting" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#1E6C7B" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-91">
31
+ <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>badge_role-sales</title>
4
+ <defs>
5
+ <ellipse id="path-1" cx="23.9999797" cy="24.0001005" rx="8.00002026" ry="8.0001005"></ellipse>
6
+ <filter x="-1.6%" y="-1.6%" width="103.1%" height="103.1%" filterUnits="objectBoundingBox" id="filter-2">
7
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
8
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
9
+ <feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
10
+ <feOffset dx="0" dy="-0.5" in="SourceAlpha" result="shadowOffsetInner2"></feOffset>
11
+ <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
12
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
13
+ <feMerge>
14
+ <feMergeNode in="shadowMatrixInner1"></feMergeNode>
15
+ <feMergeNode in="shadowMatrixInner2"></feMergeNode>
16
+ </feMerge>
17
+ </filter>
18
+ <path d="M28.4204051,19.3295949 C28.5584763,19.3295949 28.6704051,19.4415237 28.6704051,19.5795949 L28.6704051,24.7260415 C28.6704051,24.7923456 28.6440659,24.8559341 28.5971818,24.9028182 C28.4995508,25.0004492 28.3412595,25.0004492 28.2436284,24.9028182 L26.730853,23.3895949 L21.6265132,28.4948071 C21.0407268,29.0805936 20.0909793,29.0805936 19.5051929,28.4948071 C18.9194064,27.9090207 18.9194064,26.9592732 19.5051929,26.3734868 L24.608853,21.2685949 L23.0971818,19.7563716 C23.0659258,19.7251155 23.0438008,19.6864353 23.0325237,19.6444757 L23.0239585,19.5795949 C23.0239585,19.4415237 23.1358873,19.3295949 23.2739585,19.3295949 Z" id="path-3"></path>
19
+ <filter x="-2.6%" y="-2.6%" width="105.2%" height="105.2%" filterUnits="objectBoundingBox" id="filter-4">
20
+ <feOffset dx="0" dy="0.5" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
21
+ <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
22
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
23
+ </filter>
24
+ </defs>
25
+ <g id="badge_role-sales" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
26
+ <g id="Oval">
27
+ <use fill="#01B201" fill-rule="evenodd" xlink:href="#path-1"></use>
28
+ <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
29
+ </g>
30
+ <g id="Path-87" fill-rule="nonzero">
31
+ <use fill="#FFFFFF" xlink:href="#path-3"></use>
32
+ <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon-related_posts</title>
4
+ <g id="icon-related_posts" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="Group-2" transform="translate(3, 4)" fill="#000000">
6
+ <g id="Group" transform="translate(8, 0)">
7
+ <path d="M5,0 C5.58323499,0 6.14314635,0.0998603115 6.66356892,0.283415769 C6.3991272,0.412758406 6.14448849,0.558917254 5.89977518,0.718991141 C5.60998585,0.656977748 5.30872733,0.625 5,0.625 C2.58375422,0.625 0.625,2.58375422 0.625,5 C0.625,5.38216593 0.67400063,5.75288715 0.766486301,6.10562843 C1.28857511,3.57123985 3.20552213,1.54627572 5.6799267,0.868281389 C5.32867175,1.11636359 4.99977618,1.3936221 4.69669914,1.69669914 C3.33946609,3.05393219 2.5,4.92893219 2.5,7 C2.5,7.9002042 2.65859759,8.76336596 2.94937538,9.56306785 C1.21118454,8.77950877 0,7.03119804 0,5 C0,2.23857625 2.23857625,0 5,0 Z" id="Oval-2"></path>
8
+ <path d="M5,0 C5.58323499,0 6.14314635,0.0998603115 6.66356892,0.283415769 C5.93148824,0.645512583 5.26819306,1.12520523 4.69669914,1.69669914 C3.33946609,3.05393219 2.5,4.92893219 2.5,7 C2.5,7.9002042 2.65859759,8.76336596 2.94937538,9.56306785 C1.21118454,8.77950877 0,7.03119804 0,5 C0,2.23857625 2.23857625,0 5,0 Z" id="Oval-3" fill-opacity="0.25" fill-rule="nonzero"></path>
9
+ </g>
10
+ <path d="M1.71498585,16.9710085 L3.66666667,15.8 L3.66666667,15.8 L11,9.2 L8.8,7 L2.2,14.3333333 L1.02899151,16.2850141 C0.886917431,16.5218043 0.963699963,16.8289344 1.2004901,16.9710085 C1.35883129,17.0660132 1.55664466,17.0660132 1.71498585,16.9710085 Z" id="Path-25" fill-opacity="0.25" fill-rule="nonzero"></path>
11
+ <path d="M1.71498585,16.9710085 L3.66666667,15.8 L3.66666667,15.8 L11,9.2 L8.8,7 L2.2,14.3333333 L1.02899151,16.2850141 C0.886917431,16.5218043 0.963699963,16.8289344 1.2004901,16.9710085 C1.35883129,17.0660132 1.55664466,17.0660132 1.71498585,16.9710085 Z" id="Path-25-Copy" fill-opacity="0.25" fill-rule="nonzero"></path>
12
+ </g>
13
+ <g id="Group-2-Copy" transform="translate(10, 14.3374)" fill="#000000">
14
+ <g id="Group" transform="translate(8.4383, 0)">
15
+ <path d="M9.27859022,-3.78684714e-16 C9.4619239,0.520143481 9.561658,1.07971564 9.561658,1.66258195 C9.561658,4.4240057 7.32308175,6.66258195 4.561658,6.66258195 C2.53085277,6.66258195 0.782825438,5.45186582 -2.22469515e-14,3.71285755 C0.798512833,4.00402492 1.66156893,4.16258195 2.561658,4.16258195 C4.63272581,4.16258195 6.50772581,3.32311585 7.86495886,1.96588281 C8.40785208,1.42298959 8.86790258,0.797253656 9.22452163,0.109263757 Z" id="Oval-2"></path>
16
+ <path d="M9.27859022,-3.78684714e-16 C9.4619239,0.520143481 9.561658,1.07971564 9.561658,1.66258195 C9.561658,4.4240057 7.32308175,6.66258195 4.561658,6.66258195 C2.53085277,6.66258195 0.782825438,5.45186582 -2.22469515e-14,3.71285755 C0.798512833,4.00402492 1.66156893,4.16258195 2.561658,4.16258195 C4.63272581,4.16258195 6.50772581,3.32311585 7.86495886,1.96588281 C8.40785208,1.42298959 8.86790258,0.797253656 9.22452163,0.109263757 Z" id="Oval-3" fill-opacity="0.25" fill-rule="nonzero"></path>
17
+ </g>
18
+ <path d="M1.71498585,13.6335904 L3.66666667,12.4625819 L3.66666667,12.4625819 L11,5.86258195 L8.8,3.66258195 L2.2,10.9959153 L1.02899151,12.9475961 C0.886917431,13.1843862 0.963699963,13.4915164 1.2004901,13.6335904 C1.35883129,13.7285952 1.55664466,13.7285952 1.71498585,13.6335904 Z" id="Path-25" fill-opacity="0.25" fill-rule="nonzero"></path>
19
+ <path d="M1.71498585,13.6335904 L3.66666667,12.4625819 L3.66666667,12.4625819 L11,5.86258195 L8.8,3.66258195 L2.2,10.9959153 L1.02899151,12.9475961 C0.886917431,13.1843862 0.963699963,13.4915164 1.2004901,13.6335904 C1.35883129,13.7285952 1.55664466,13.7285952 1.71498585,13.6335904 Z" id="Path-25-Copy" fill-opacity="0.25" fill-rule="nonzero"></path>
20
+ </g>
21
+ <g id="Group-2" transform="translate(3, 4)" fill="#000000">
22
+ <g id="Group" transform="translate(11, 0)">
23
+ <path d="M7,0 C10.8659932,0 14,3.13400675 14,7 C14,10.8659932 10.8659932,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 Z M7,0.875 C3.61725591,0.875 0.875,3.61725591 0.875,7 C0.875,7.5350323 0.943600881,8.05404201 1.07308082,8.5478798 C1.84546557,4.79847351 4.79847351,1.84546557 8.54871307,1.07248659 C8.05404201,0.943600881 7.5350323,0.875 7,0.875 Z" id="Oval-2"></path>
24
+ <circle id="Oval" fill-opacity="0.25" fill-rule="nonzero" cx="7" cy="7" r="7"></circle>
25
+ </g>
26
+ <path d="M1.71498585,23.9710085 L5,22 L5,22 L15,13 L12,10 L3,20 L1.02899151,23.2850141 C0.886917431,23.5218043 0.963699963,23.8289344 1.2004901,23.9710085 C1.35883129,24.0660132 1.55664466,24.0660132 1.71498585,23.9710085 Z" id="Path-25" fill-opacity="0.25" fill-rule="nonzero"></path>
27
+ <path d="M1.71498585,23.9710085 L5,22 L5,22 L15,13 L12,10 L3,20 L1.02899151,23.2850141 C0.886917431,23.5218043 0.963699963,23.8289344 1.2004901,23.9710085 C1.35883129,24.0660132 1.55664466,24.0660132 1.71498585,23.9710085 Z" id="Path-25-Copy" fill-opacity="0.25" fill-rule="nonzero"></path>
28
+ </g>
29
+ </g>
30
+ </svg>
@@ -332,7 +332,9 @@ function centerElement(elem: HTMLElement) {
332
332
  }
333
333
  const styleString = [
334
334
  `left: ${(win.width - cappedSize.width)/2}px`,
335
- `top: ${(win.height - cappedSize.height)/2}px`
335
+ `top: ${(win.height - cappedSize.height)/2}px`,
336
+ `max-height: ${cappedSize.height}px`,
337
+ `max-width: ${cappedSize.width}px`
336
338
  ].join('; ')
337
339
  elem.setAttribute('style', styleString)
338
340
  }
@@ -0,0 +1,98 @@
1
+ import {ModalPart} from "../modals"
2
+ import {Part, PartTag} from "tuff-core/parts"
3
+ import {messages, logging} from "tuff-core"
4
+ import Glyps from "../glyps"
5
+
6
+ const log = new logging.Logger("GlypPicker")
7
+
8
+
9
+ const pickKey = messages.typedKey<{ icon: string }>()
10
+
11
+ export type GlypPickerState = {
12
+ icon?: string
13
+ onPicked: (icon?: string) => any
14
+ }
15
+
16
+ /**
17
+ * A modal that allows the user to pick a glyp.
18
+ */
19
+ class GlypPickerModal extends ModalPart<GlypPickerState> {
20
+
21
+ grid!: GlypGrid
22
+
23
+ filterKey = messages.untypedKey()
24
+
25
+ async init() {
26
+ await super.init()
27
+
28
+ this.setIcon('glyp-cursor')
29
+ this.setTitle("Choose an Icon")
30
+
31
+ this.grid = this.makePart(GlypGrid, {})
32
+
33
+ this.onKeyUp(this.filterKey, m => {
34
+ log.info(`Filter key up`, m)
35
+ const filter = (m.event.target as HTMLInputElement).value
36
+ this.grid.setFilter(filter)
37
+ })
38
+
39
+ this.onClick(pickKey, m => {
40
+ log.info(`Picked ${m.data.icon}`)
41
+ this.state.onPicked(m.data.icon)
42
+ this.pop()
43
+ })
44
+ }
45
+
46
+ renderContent(parent: PartTag) {
47
+ parent.div('.glyp-picker-part.tt-flex.column.gap.padded.tt-form', picker => {
48
+ picker.input({type: 'search', placeholder: 'Filter'})
49
+ .emitKeyUp(this.filterKey)
50
+ .emitChange(this.filterKey)
51
+ picker.div('.grid-container', container => {
52
+ container.part(this.grid)
53
+ })
54
+ })
55
+ }
56
+
57
+
58
+ }
59
+
60
+ /**
61
+ * A grid of labeled glyps with an optional filter.
62
+ */
63
+ class GlypGrid extends Part<{ filter?: string }> {
64
+
65
+ setFilter(filter: string) {
66
+ this.state.filter = filter
67
+ this.dirty()
68
+ }
69
+
70
+ clearFilter() {
71
+ this.state.filter = undefined
72
+ this.dirty()
73
+ }
74
+
75
+ get parentClasses(): Array<string> {
76
+ return ['glyp-picker-grid']
77
+ }
78
+
79
+ render(parent: PartTag) {
80
+ const filter = this.state.filter ? this.state.filter.trim().toLowerCase() : null
81
+ for (const glyp of Glyps.names) {
82
+ if (!filter || glyp.includes(filter)) {
83
+ parent.a(a => {
84
+ a.i(glyp)
85
+ a.div('.title').text(Glyps.displayName(glyp))
86
+ }).emitClick(pickKey, {icon: glyp})
87
+ }
88
+ }
89
+ }
90
+
91
+ }
92
+
93
+
94
+ const GlypPicker = {
95
+ Modal: GlypPickerModal
96
+ }
97
+
98
+ export default GlypPicker
@@ -2,8 +2,11 @@ import {FormPart, FormPartData} from "tuff-core/forms"
2
2
  import Theme from "../theme"
3
3
  import {TerrierApp} from "../app"
4
4
 
5
- export default abstract class TerrierFormPart<TState extends FormPartData> extends FormPart<TState> {
6
5
 
6
+ /**
7
+ * Form part that implements the Terrier platform methods like `app` and `theme`.
8
+ */
9
+ export default abstract class TerrierFormPart<TState extends FormPartData> extends FormPart<TState> {
7
10
 
8
11
  get app(): TerrierApp<any> {
9
12
  return this.root as unknown as TerrierApp<any> // this should always be true