Макет интерфейса UIK (Основан на UIkit) | UIK interface template (Based on UIkit)
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

205 行
6.0KB

  1. const ИМЯ = "UIK";
  2. // Переместить в отдельный файл. JSON?
  3. const разделМеню = `
  4. <ul class="uk-nav uk-nav-default tm-nav">
  5. <li class="uk-nav-header">%название%</li>
  6. %содержимое%
  7. </ul>
  8. `;
  9. const пунктМеню = `
  10. <li id="%id%"><a id="%id%-ссылка">%название%</a></li>
  11. `;
  12. // // // //
  13. ВыбратьПервыйПунктМенюДокументации = мир =>
  14. {
  15. мир.номерВыбранногоПунктаДокументации = 0;
  16. мир.уведомить("выбрали пункт меню документации");
  17. };
  18. // // // //
  19. ОтобразитьСодержимоеВыбранногоПунктаМенюДокументации = мир =>
  20. {
  21. $(`#${мир.макет.константы.содержимое}`).html(`<p>Выбрали пункт меню #${мир.номерВыбранногоПунктаДокументации}`);
  22. };
  23. // // // //
  24. ОтобразитьВыборПунктаМенюДокументации = мир =>
  25. {
  26. const id = мир.макет.константы.документация;
  27. // Очищаем прошлый выбор.
  28. for (var номер in мир.пунктыДокументации)
  29. {
  30. $(`#${id}-${номер}`).removeClass("uk-active");
  31. }
  32. // Задаём новый выбор.
  33. $(`#${id}-${мир.номерВыбранногоПунктаДокументации}`).addClass("uk-active");
  34. };
  35. // // // //
  36. ОтслеживатьВыборПунктаМенюДокументации = мир =>
  37. {
  38. for (var номер in мир.пунктыДокументации)
  39. {
  40. const номерПункта = номер;
  41. const id = `${мир.макет.константы.документация}-${номер}-ссылка`;
  42. $(`#${id}`).click(function() {
  43. мир.номерВыбранногоПунктаДокументации = номерПункта;
  44. мир.уведомить("выбрали пункт меню документации");
  45. });
  46. }
  47. };
  48. // // // //
  49. СоздатьРазделМенюДокументации = мир =>
  50. {
  51. мир.макет.константы.документация = "документация";
  52. var содержимое = "";
  53. for (var номер in мир.пунктыДокументации)
  54. {
  55. var название = мир.пунктыДокументации[номер];
  56. var id = `${мир.макет.константы.документация}-${номер}`;
  57. var пункт = пунктМеню
  58. .replace("%название%", название)
  59. .replace(/%id%/g, id)
  60. ;
  61. содержимое += пункт;
  62. }
  63. var раздел = разделМеню
  64. .replace("%название%", мир.макет.константы.документация)
  65. .replace("%содержимое%", содержимое)
  66. ;
  67. $(`#${мир.макет.константы.меню}`).append(раздел);
  68. };
  69. // // // //
  70. ЗадатьПунктыРазделаМенюДокументации = мир =>
  71. {
  72. мир.пунктыДокументации = [
  73. "Описание",
  74. "Ещё что-то",
  75. ];
  76. };
  77. // // // //
  78. ЗадатьЗаголовок = мир =>
  79. {
  80. $(`#${мир.макет.константы.заголовокЛево}`).html(`
  81. <span class="uk-navbar-item uk-logo">UIK</span>
  82. `);
  83. };
  84. // // // //
  85. ОчиститьМакетUIKОтЗаглушек = мир =>
  86. {
  87. $(`#${мир.макет.константы.заголовокЛево}`).text("");
  88. $(`#${мир.макет.константы.заголовокЦентр}`).text("");
  89. $(`#${мир.макет.константы.заголовокПраво}`).text("");
  90. $(`#${мир.макет.константы.меню}`).text("");
  91. $(`#${мир.макет.константы.содержимое}`).text("");
  92. };
  93. // // // //
  94. УстановитьМакетUIK = мир =>
  95. {
  96. document.body.innerHTML = мир.макет.структура;
  97. var вид = document.createElement("style");
  98. document.head.appendChild(вид);
  99. вид.innerHTML = мир.макет.вид;
  100. };
  101. // // // //
  102. НастроитьПримерМакетаUIK = мир =>
  103. {
  104. var название = "пример";
  105. var html = мир.макет.структура;
  106. var css = мир.макет.вид;
  107. // Вырезаем тело из макета.
  108. var начало = html.indexOf("<!-- МАКЕТ_НАЧАЛО -->");
  109. var конец = html.indexOf("<!-- МАКЕТ_КОНЕЦ -->");
  110. html = html.substring(начало, конец);
  111. мир.макет.константы = {
  112. "заголовокЛево": `${название}-заголовокЛево`,
  113. "заголовокЦентр": `${название}-заголовокЦентр`,
  114. "заголовокПраво": `${название}-заголовокПраво`,
  115. "меню": `${название}-меню`,
  116. "содержимое": `${название}-содержимое`,
  117. };
  118. // Заменяем константы в макете.
  119. for (var константа in мир.макет.константы)
  120. {
  121. var старое = "${" + константа + "}";
  122. var новое = мир.макет.константы[константа];
  123. html = html.replace(старое, новое);
  124. css = css.replace(старое, новое);
  125. }
  126. мир.макет.структура = html;
  127. мир.макет.вид = css;
  128. };
  129. // // // //
  130. ЗагрузитьМакетUIK = мир =>
  131. {
  132. var м = мир.модули.модульПоИмени(ИМЯ);
  133. мир.макет = {
  134. "структура": м.содержимое["/макет|template.html"],
  135. "вид": м.содержимое["/макет|template.css"],
  136. };
  137. };
  138. // // // //
  139. ВывестиПриветствиеОтUIK = мир =>
  140. {
  141. console.debug("Привет от UIK");
  142. };